উইন্ডোজে কোন প্রক্রিয়া কোনও পোর্টকে (শ্রবণ না করে) আবদ্ধ করেছে তা নির্ধারণ করে


12

কোন সকেটে কোন প্রক্রিয়াটি শুনছে তা জানতে চাইলে আমি নেটস্যাট / টিসিপিভিউ ব্যবহার করতে পারি এবং তা অবিলম্বে এটি দেখতে পাব। তবে কোনও কথা না শুনেই বাঁধাই সম্ভব। এটি সম্পন্ন হলে এটি নেটস্যাট / টিসিপিভিউতে প্রদর্শিত হবে না, তবে সকেটটি ব্লক করে।

পাইথনের উদাহরণ:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0',12345))

পোর্টটি এখন আবদ্ধ, এবং দ্বিতীয়টি একই কোডটি কার্যকর করার চেষ্টা করা হচ্ছে যখন প্রথমটি এখনও চলছে তখন একটি ত্রুটির ফলস্বরূপ। যাইহোক, যদি না আপনি ব্যবহার করে সেই বন্দরে শুনতে শুরু করেন

s.listen(1)

পোর্টটি নেটস্যাট / টিসিপিভিউতে প্রদর্শিত হবে না।

প্রশ্নটি হ'ল: কী পোর্টগুলি আবদ্ধ (তবে শুনছে না), এবং কোন প্রক্রিয়া তাদের বাধ্য করছে?

এই পটভূমিতে যে আমি হয় আছে একটি ছিল 1976 পোর্ট যে আবদ্ধ করা যাবে না চলমান পরিসর , আর আমি জানি এই কি কারণ চাই। এরই মধ্যে, আমি পরীক্ষার মাধ্যমে এবং ত্রুটির মধ্য দিয়ে স্থির করেছিলাম যে ইন্টারনেট সংযোগ ভাগ করে নেওয়া those পোর্টগুলিকে অবরুদ্ধ করছে, তবে আমি এখনও এই প্রশ্নের উত্তর সম্পর্কে আগ্রহী।

সম্পাদনা: জনপ্রিয় অনুরোধের কারণে, এই পোর্টগুলি সন্ধান করার জন্য আমি এখানে কোডটি ব্যবহার করেছি:

import time
import socket

for i in range(0,65536):
    try:
        print "Listening on port", i, '...', 
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        serversocket.bind(('0.0.0.0', i))
        serversocket.listen(5)
        #time.sleep(0.1)
        serversocket.close()
        print "ok"
    except:
        print "FAIL"

(আপনি আউটপুটটি গ্রেপ করতে পাইপ করতে এবং কেবল ব্যর্থতার জন্য ফিল্টার করতে চাইতে পারেন)


আপনি এই স্ক্রিপ্টটি 0 থেকে 65535 পর্যন্ত লুপ করতে পারেন, এটিতে যে পোর্টগুলি ব্যর্থ হয় লগ করতে পারেন এবং ফলাফলটিকে নেটট্যাট পোর্টগুলির সাথে তুলনা করতে পারেন। নেটসটে তালিকাভুক্ত নয় এমনগুলি আপনার সন্ধান করা উচিত। আমি এমন কোনও সরঞ্জাম বা কৌশল জানি না যা শুনবে না যদি না এই বন্দরগুলির পিছনে কী প্রক্রিয়া আপনাকে দেখায়।
কেদার

@ কেদার: কোন বন্দরগুলি প্রভাবিত হয়েছে তা জানতে আমি ঠিক এটিই করেছি।
জান স্কেজবল

@ লিজ: কোড পোস্ট হয়েছে।
জান শিজবাল

আপনি কি উত্তর হিসাবে পোস্ট করতে পারেন? রেফারেন্স হিসাবে রাখা ভাল হবে :)
লিজ

@ লিজ: এটি প্রশ্নের উত্তর নয়। এটি দেখায় যে কোন বন্দরগুলি প্রভাবিত হয়েছে, তবে তা কী দখল করছে তা নয়।
জান শিজবাল

উত্তর:


1

আপনার ব্যবহার করা উচিত

DWORD getExtendedTcpTable (PVOID pTcpTable, PDWORD pdwSize, BOOL BOrder, ULONG ulAf, TCP_TABLE_CLASS টেবিল ক্লাস, আলং সংরক্ষিত);

সঙ্গে

টেবিলক্লাসের মান = TCP_TABLE_OWNER_PID_ALL "বা" TCP_TABLE_OWNER_PID_CONNECTIONS "বা" TCP_TABLE_OWNER_PID_LISTENER

pTcpTable কাঠামো -> MIB_TCPTABLE_OWNER_PID

আপনি যে তথ্য পুনরুদ্ধার করতে চান তার উপর নির্ভর করে

সম্পাদনা করুন:

TCP_TABLE_OWNER_PID_ALL MIB_TCPTABLE_OWNER_PID স্ট্রাকচারটি দেয় যা MIB_TCPROW_OWNER_PID স্ট্রাকচারের একটি অ্যারে যেখানে প্রতিটি যখন আবদ্ধ থাকে এবং শ্রবণ না করে dwStateথাকে MIB_TCP_STATE_CLOSEDতখন এই কাঠামোটি প্রস্তাব করে dwLocalAddrএবংdwLocalPort

typedef struct _MIB_TCPROW_OWNER_PID {
  DWORD dwState;
  DWORD dwLocalAddr;
  DWORD dwLocalPort;
  DWORD dwRemoteAddr;
  DWORD dwRemotePort;
  DWORD dwOwningPid;
} MIB_TCPROW_OWNER_PID, *PMIB_TCPROW_OWNER_PID;

এটি কেবল সকেটকেই তালিকাবদ্ধ করে যা উভয় আবদ্ধ এবং শ্রবণযোগ্য, তবে প্রশ্নটি বিশেষত সকেটগুলি সম্পর্কে ছিল যা আবদ্ধ তবে শোনেনি।
লুক ডানস্তান

আপনি কি জোর দিয়ে বলছেন বা জিজ্ঞাসা করছেন ??? সম্পাদনাটি দেখুন
প্যাট

আমি যখন পেস্টবিন.com/vaHMVRQR চালনা করি তখন শুনি বাঁধাইয়ের জন্য টেবিলে কিছুই পাই না (উইন 7)
লুক ডুনস্তান

জড়িত কাঠামোর নির্দিষ্ট প্রান্তিককরণ রয়েছে, আপনার সেগুলি পুনরায় সংজ্ঞায়িত করা উচিত নয়; আপনার এমএস দ্বারা সংজ্ঞায়িত হওয়াগুলি উল্লেখ করা উচিত। এছাড়াও আপনি যদি প্রথমে কোনও এমএস এপিআই পাইথন পরীক্ষা করতে চান তবে সঠিক সরঞ্জাম নয়; পরিবর্তে আপনার সি / সি ++ ব্যবহার করা উচিত।
প্যাট

প্রদর্শিত কোডটি সকেটগুলির সম্পর্কে তথ্য দেয় না যা আবদ্ধ তবে সংযুক্ত নয়;
নেটস্যাটেলের

0

নেটস্যাটেলের সাম্প্রতিক সংস্করণগুলিতে এখন একটি কমান্ড লাইন প্যারামিটার -q রয়েছে যা সেই সকেটগুলি দেখায়।

$ netstat -?

Displays protocol statistics and current TCP/IP network connections.

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]

  -a            Displays all connections and listening ports.
  -b            Displays the executable involved in creating...
  ...
  -p proto      Shows connections for the protocol specified...
  -q            Displays all connections, listening ports, and bound
                nonlistening TCP ports. Bound nonlistening ports may or may not
                be associated with an active connection.
  -r            Displays the routing table.
  ...

ব্যবহারের উদাহরণ:

$ netstat -nq -p tcp

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:7              0.0.0.0:0              LISTENING
  TCP    0.0.0.0:9              0.0.0.0:0              LISTENING
  TCP    0.0.0.0:13             0.0.0.0:0              LISTENING
  ...

 TCP    192.168.122.157:50059  54.213.66.195:443      ESTABLISHED
  TCP    0.0.0.0:49676          0.0.0.0:0              BOUND
  TCP    0.0.0.0:49700          0.0.0.0:0              BOUND
  TCP    0.0.0.0:49704          0.0.0.0:0              BOUND
  TCP    0.0.0.0:49705          0.0.0.0:0              BOUND
  ...

মনে হচ্ছে সেই পরিস্থিতিতে সকেট পাওয়ার জন্য কোনও পাবলিক এপিআই নেই। আমার প্রশ্নটি স্ট্যাকওভারফ্লোতে দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.