我一直在使用pycharm编写网络扫描程序,在尝试运行代码时,它似乎出现了问题:
和我的其他帖子一样,我在谷歌上搜索了很多,但还没有找到解决问题的方法
我曾使用windows和parrotsec使用pycharm尝试过这一点,下载了以前版本的scapy,但似乎没有任何效果
pycharm:2019.3.4 x64
python版本:2和3已下载-最新版本
试用的scapy版本:2.2.0-dev到2.4.3
窗口:10
帕罗茨秒:4.8
下面是我在终端中运行此操作时遇到的错误
Traceback (most recent call last):
File "network_scanner.py", line 26, in <module>
scan_result = scan("192.168.0.64/24")
File "network_scanner.py", line 13, in scan
answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]
File "/usr/lib/python2.7/dist-packages/scapy/sendrecv.py", line 504, in srp
filter=filter, nofilter=nofilter, type=type)
File "/usr/lib/python2.7/dist-packages/scapy/arch/linux.py", line 467, in __init__
self.ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(type)) # noqa: E501
File "/usr/lib/python2.7/socket.py", line 191, in __init__
_sock = _realsocket(family, type, proto)
socket.error: [Errno 1] Operation not permitted
import scapy.all as scapy
def get_arguments():
parser = optparse.OptionParser()
parser.add_option("-t", "--target", dest="target", help="Target IP / IP range.")
options, arguments = parser.parse_args()
return options
def scan(ip):
arp_request = scapy.ARP(pdst=ip)
broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
arp_request_broadcast = broadcast / arp_request
answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]
clients_list = []
for element in answered_list:
client_dict = {"ip": element[1].psrc, "mac address": element[1].hwsrc}
clients_list.append(client_dict)
return clients_list
def print_result(results_ist):
print("IP\t\t\tMAC Address\n-----------------------------------------")
for client in results_ist:
print(client["ip"] + "\t\t" + client["mac address"])
有帮助的有用评论将是惊人的
谢谢
修复了该问题,将optpasse更改为新的更新argparse,卸载scapy并在终端中使用以下命令重新安装
运行代码python3 network_scanner.py-t(IP)
相关问题 更多 >
编程相关推荐