Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无法将ICMP响应写入excel_Python 3.x_Network Programming_Scapy - Fatal编程技术网

Python 3.x 无法将ICMP响应写入excel

Python 3.x 无法将ICMP响应写入excel,python-3.x,network-programming,scapy,Python 3.x,Network Programming,Scapy,我正在尝试将收到的ICMP查询响应写入excel工作表 下面是示例代码 from scapy.layers.inet import * a1= IP(dst="192.168.1.1")/ICMP() a = sr1(IP(dst="192.168.1.1")/ICMP(), iface="Wireless Network Connection", timeout=10) b = a.summary() # Create file workbook and worksheet outworkb

我正在尝试将收到的ICMP查询响应写入excel工作表 下面是示例代码

from scapy.layers.inet import *
a1= IP(dst="192.168.1.1")/ICMP()
a = sr1(IP(dst="192.168.1.1")/ICMP(), iface="Wireless Network Connection", timeout=10)
b = a.summary()

# Create file workbook and worksheet
outworkbook = xlsxwriter.Workbook('output.xlsx')
outsheet = outworkbook.add_worksheet()

# writing headers
outsheet.write("A1", "Requests")
outsheet.write("B1", "Response")

 # writing data
 outsheet.write("A2", a1)
 outsheet.write("B2", b)
创建的excel仅包含标题,且未写入响应值 我也尝试了一些其他的东西,但到目前为止没有任何效果 知道这个代码有什么问题吗

问题 我可以看到您有5个问题:

  • 您没有导入
    xlsxwriter
    。这对于这是一个非常重要的问题
  • 最后两次写入将缩进一个空格(Python关心这一点)
  • 您没有关闭工作簿,因此无法保存文件
  • 变量
    a
    a1
    b
    应该更具描述性(说明原因)
  • 您构建一个名为a1(重命名为
    ping
    )的数据包,然后在下一行再次构建它
  • 解决方案 固定代码如下所示:

    导入xlsxwriter
    从scapy.layers.inet导入*
    #我的防火墙位于192.168.1.254,所以请使用该地址;en0是我的接口
    ping_packet=IP(dst=“192.168.1.254”)/ICMP()
    应答=sr1(ping_数据包,iface=“en0”,超时=10)
    ping_summary=答案.摘要()
    #创建文件工作簿和工作表
    outworkbook=xlsxwriter.Workbook('output.xlsx')
    outsheet=outworkbook.add_工作表()
    #写标题
    外页。写(“A1”,“请求”)
    外页。写(“B1”,“响应”)
    #写入数据
    外页。书写(“A2”,a1)
    外页。书写(“B2”,b)
    #关闭文件
    outworkbook.close()
    
    验证 在Libreoffice中打开此文件,我们看到它已被保存:

    Problems 我可以看到您有5个问题:

  • 您没有导入
    xlsxwriter
    。这对于这是一个非常重要的问题
  • 最后两次写入将缩进一个空格(Python关心这一点)
  • 您没有关闭工作簿,因此无法保存文件
  • 变量
    a
    a1
    b
    应该更具描述性(说明原因)
  • 您构建一个名为a1(重命名为
    ping
    )的数据包,然后在下一行再次构建它
  • 解决方案 固定代码如下所示:

    导入xlsxwriter
    从scapy.layers.inet导入*
    #我的防火墙位于192.168.1.254,所以请使用该地址;en0是我的接口
    ping_packet=IP(dst=“192.168.1.254”)/ICMP()
    应答=sr1(ping_数据包,iface=“en0”,超时=10)
    ping_summary=答案.摘要()
    #创建文件工作簿和工作表
    outworkbook=xlsxwriter.Workbook('output.xlsx')
    outsheet=outworkbook.add_工作表()
    #写标题
    外页。写(“A1”,“请求”)
    外页。写(“B1”,“响应”)
    #写入数据
    外页。书写(“A2”,a1)
    外页。书写(“B2”,b)
    #关闭文件
    outworkbook.close()
    
    验证
    在Libreoffice中打开此文件,我们看到它已被保存:

    如果您在写入excel文件之前尝试打印数据,您看到了吗?是的,我可以看到数据(输出为-->IP/ICMP 192.168.1.10>192.168.1.1 echo请求0)。如果您在写入excel文件之前尝试打印数据,您看到了吗?是的,我可以看到数据(输出为-->IP/ICMP 192.168.1.10>192.168.1.1 echo请求0)感谢Jacobs,我在这里共享的代码是用于演示目的的,我同意它应该写得更好一些。但是对我来说有效的是增加了5秒的延迟,之后我可以在excelEveryone中看到响应,每个人都从某处开始:)您可能希望在问题中添加一个编辑部分,说明哪些内容对您有效,以方便将来的读者。感谢Jacobs,我在这里共享的代码是用于演示目的的,我同意它应该写得更好一些。但是对我有效的是增加了5秒的延迟,在那之后,我可以在excelEveryone中看到答案,每个人都从某个地方开始:)你可能想在你的问题中添加一个编辑部分,说明什么对你有用,以方便未来的读者。