python如何进行raw socket编程。编程示例。

我想问一下python如何进行raw -socket编程。操作系统是windows。百度上说的方法但是在windwos上没有PF_PACKAGE和AF_PACKAGE.

阅读 6.5k
2 个回答

如果是传输层,发包:

def send_one(addr, payload):
    s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
    packet = b'任意数据,不一定是ICMP'
    s.sendto(packet, (addr, 0))

收包:

s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
s.bind(("你的网卡IP", 0))
s.ioctl(SIO_RCVALL, RCVALL_ON)
packet, (addr, _) = s.recvfrom(65535)

如果要从第二层开始自定义,建议用 Linux。在 Windows 上也许可行,同求答案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题