windows下用python 3 写udp端口探测时,使用SOCK_RAW没有root权限怎么办?

发布于 2022-09-01 19:15:02 字数 860 浏览 11 评论 0

非常简单的代码如下:

import socket

if __name__ == '__main__':
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    host = 'www.baidu.com'
    ip = socket.gethostbyname(host)
    port = 80
    print(ip)
    address = (ip,port)

    message = 'abc'
    s.sendto(message.encode(),address)

    icmp = socket.getprotobyname("icmp")
    print(icmp)
    try:
        sock_icmp = socket.socket(socket.AF_INET,socket.SOCK_RAW,icmp)
    except:
        print(socket.error)

    recPacket,addr = sock_icmp.recvfrom(64)
    print(recPacket)
运行时会报错:

clipboard.png

试过用管理员身份运行cmd,然后执行这个脚本,但是结果一样。
百度了很久,一直没找到解决办法。
希望会的童鞋指点一下,不胜感激。

或者你觉得我的udp端口探测这样写错了,也欢迎指出交流。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不即不离 2022-09-08 19:15:02

楼主啊,你这不是没权限,而是未定义啊。能否把OSError详细信息贴下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文