これについてグーグルで調べてみましたが、何も見つかりませんでした...ポートスキャナーを構築しています。ネットワーク範囲(192.168.2.*など)をスキャンして、その上にあるコンピューターの数を確認できるようにしたいと思いますオンラインの範囲。Nmapによく似ています。私はPythonでプログラミングしています。これはPythonで可能ですか?
3579 次
4 に答える
2
を使用しpython-nmap
ます。基本的な使い方:
import nmap
nm = nmap.PortScanner()
nm.scan(hosts='192.168.2.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status in hosts_list:
print('{0}:{1}'.format(host, status))
于 2010-11-15T16:19:00.877 に答える
1
以下は、開始できるドラフトの例です。
import socket
addr_range = "192.168.1.%d"
ip_address_up = []
# Use UDP.
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(2.0)
for i in range(1, 254):
try:
ip = addr_range % i
socket.gethostbyaddr(ip)
ip_address_up.append(ip)
except socket.herror as ex:
pass
print ip_address_up
または、 UDPに感謝するのではなく、ICMP(ping )を使用してこのようなもの:
import socket
import ping
ip_address_up = []
addr_range = "192.168.1.%d"
for i in range(1, 254):
try:
ip = addr_range % i
delay = ping.do_one(ip, timeout=2)
ip_address_up.append(ip)
except (socket.herror, socket.timeout) as ex:
pass
print ip_address_up
于 2010-11-15T16:42:08.057 に答える
0
ローカル ネット上の IPv4 の場合、たとえばScapyを使用してARPに頼ることができます。関連する質問を参照してください。
于 2010-11-15T16:29:33.713 に答える