首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scapy在windows/parrotsec上不起作用(pycharm)

scapy在windows/parrotsec上不起作用(pycharm)
EN

Stack Overflow用户
提问于 2020-07-27 20:18:54
回答 1查看 130关注 0票数 0

我一直在使用pycharm编写一个网络扫描器,在尝试运行代码时似乎遇到了问题:

和我所有的其他帖子一样,我已经过多地搜索了谷歌,但还没有找到解决这个问题的方法。

我已经尝试过使用windows和parrotsec使用pycharm,下载了先前版本的scapy,但似乎什么都不起作用?

pycharm: 2019.3.4 x64

python版本:已下载2和3-最新版本

尝试的替罪羊版本: 2.2.0-dev到2.4.3

窗口: 10

parrotsec: 4.8

下面是我在终端中运行这段代码时得到的错误。

代码语言:javascript
复制
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
代码语言:javascript
复制
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"]) 

真正有帮助的有用的评论将是令人惊叹的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 19:45:29

修复此问题,将optparse更改为新的更新argparse,卸载scapy并在终端中使用以下命令重新安装。

运行代码python3 network_scanner.py -t (IP)

代码语言:javascript
复制
Re install scapy using the following commands:
pip uninstall scapy-python3
pip uninstall scapy
pip install scapy
pip3 install scapy
代码语言:javascript
复制
#!/usr/bin/env python

import scapy.all as scapy
import argparse

def get_arguments():
    parser = argparse.ArgumentParser()
    parser.add_argument("-t", "--target", dest="target", help="Target IP / IP Range.")
    options = 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"])

options = get_arguments()
scan_result = scan(options.target)
print_result(scan_result)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63115193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档