qq_43412960 2019-10-21 18:32 采纳率: 76.5%
浏览 136
已采纳

这是一个关于PYTHON的socket问题

import  time
import  array
def jiaoyan(pack):
    if len(pack)%2==1:
        pack+=b'\0'
    words=array.array('h',pack)
    sum=0
    for word in words:
        sum += word
        sum = (sum >> 16) + (sum & 0xffff)
        sum = (sum >> 16) + (sum & 0xffff)
    return (~sum) & 0xffff


icmp=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)
icmp.settimeout(3)


header = struct.pack('bbHHh', 8,0,0,1234, 1)
data=struct.pack('5s',b'haasd')


print(jiaoyan(header+data))

icmp.sendto(header+data, ('127.0.0.1', 1))

我想完成一个icmp的封装 然后发给自己 我用回文地址127.0.0.1,来发给自己。封装icmp的时候,我用jiaoyan方法整了个产生校验码位的函数。初始的校验码为0.这是我的思路,但是最后发icmp包的时候出错了 。好奇怪

  • 写回答

1条回答 默认 最新

  • soar3033 2019-10-21 21:41
    关注

    在头上加上import socket import struck。你这库都没引用运行当然有问题

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

报告相同问题?

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题