qq_43412960 2019-11-22 04:54 采纳率: 76.5%
浏览 261
已采纳

这是一个关于PYTHO的socket -raw问题

import   struct,array
import  socket,time
service=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)
service.settimeout(3)
head=struct.pack('bbHHh',8,0,0,1,1)
data=struct.pack('h',4)
bao=head+data
def jiaoyan(bao):
    sum=0
    if len(bao)&1:
        bao=bao+b'\0'
    words=array.array('h',bao)
    for  word in words:
        sum+=word
        word=word>>16+word&0xffff
        word = word >> 16 + word & 0xffff
        return  ~sum&0xffff

hhhhhhh=jiaoyan(bao)

head=struct.pack('bbHHh',8,0,hhhhhhh,1,1)
bao=head+data
service.sendto(bao,('127.0.0.1',2000))
data,add=service.recvfrom(100)

print(data)

service.close()

这是我写的完美的icmp包,然后ping主机的代码,但是运行后数据包超时。。

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-22 05:38
    关注

    先找一个现成的程序跑一下,排除下环境的问题,再对照下你的程序,icmp的程序大量都是

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部