0

以下は、最初の Python プロジェクトとして構築しようとした NetworkScanner のコードです。#!/usr/bin/env パイソン

import scapy.all as scapy
import optparse


def scan(ip):
    packet1 = scapy.ARP(pdst=ip)
    etherpacket = scapy.Ether(dst='ff:ff:ff:ff:ff:ff')
    broadcast_packet = etherpacket / packet1
    ans = scapy.srp(broadcast_packet, timeout=60, verbose=False)[0]
    ret_list = list()

    for item in ans:
        dic = {}
        dic['ip'] = item[1].pdst
        dic['mac'] = item[1].hwdst
        ret_list.append(dic)
    print(ret_list)
    return ret_list


def printfun(returnlist):
    print("IP\t\t\tMAC Address\n----------------------------------------------")
    for elem in returnlist:
        print(elem["ip"] + "\t\t" + elem["mac"])


def getip():

    parser = optparse.OptionParser()
    parser.add_option('-i', "--ip", dest = 'received_ip', help="Please enter the ip you want to scan")
    (option, arguments) = parser.parse_args()
    return option.received_ip


ip = getip()
if ip:
    result = scan(ip)
    printfun(result)
else:
    print("no ip given")

今、私はいくつかのチュートリアルに従い、並行して構築することを学びました。それは私には正しいように思えますが、私は得意ではありません。しかし、プログラムを実行すると、実行された仮想ホスト自体の IP のみがスキャンされます。

/PycharmProjects/Networkscanner$ sudo python networkscanner.py -i 192.168.1.1/24
[{'ip': '192.168.1.205', 'mac': '08:00:27:1f:30:76'}, {'ip': '192.168.1.205', 'mac': '08:00:27:1f:30:76'}]
IP          MAC Address
----------------------------------------------
192.168.1.205       08:00:27:1f:30:76
192.168.1.205       08:00:27:1f:30:76

Pythonの組み込みネットワークスキャナーを使用すると、これらの結果が得られます。

 Currently scanning: Finished!   |   Screen View: Unique Hosts                 

 5 Captured ARP Req/Rep packets, from 4 hosts.   Total size: 300               
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 192.168.1.1     a0:47:d7:36:2a:c0      2     120  Best IT World (India) Pvt Lt
 192.168.1.203   e4:42:a6:30:93:64      1      60  Intel Corporate             
 192.168.1.205   30:b5:c2:10:05:3b      1      60  TP-LINK TECHNOLOGIES CO.,LTD
 192.168.1.207   30:b5:c2:10:05:3b      1      60  TP-LINK TECHNOLOGIES CO.,LTD

編集:モニターモードを試しましたが、役に立ちません。また、外部WiFiアダプターを使用してメインウィンドウで実行しようとしましたが、それでも同じ問題です

誰かが私のコードで何が間違っているのか助けてもらえますか?

4

1 に答える 1