小编Ric*_*son的帖子

在Python中获取网络地址和网络掩码

在我的Python脚本中,我需要检索运行脚本的机器的IP地址及其网络地址和网络字节.

至于IP地址,我在档案中找到了解决方案:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("www.google.com",80))
myAddress = (s.getsockname()[0])
s.close()
Run Code Online (Sandbox Code Playgroud)

但是我应该如何寻找网络地址和网络字节?我需要将这些信息放入格式的tcpdump过滤器中$NetworkAddress/$NetworkBytes,如果这有帮助的话.

例:

128.1.2.0/20
Run Code Online (Sandbox Code Playgroud)

inet 跑步的时候真的可以找到它ip addr.在Python中获取此信息的任何简单方法?

python sockets ip ip-address

7
推荐指数
1
解决办法
1万
查看次数

plt.figure()vs Matplotlib中的子图

Matplotlib中,很多示例都出现在表单中ax = subplot(111),然后应用了函数ax,例如ax.xaxis.set_major_formatter(FuncFormatter(myfunc)).(在这里找到)

或者,当我不需要子图时,我可以做plt.figure(),然后绘制我需要的任何东西plt.plot()或类似的功能.

现在,我正好在第二种情况下,但我想set_major_formatter在X轴上调用该函数.调用它plt当然不会起作用:

>>> plt.xaxis.set_major_formatter(FuncFormatter(myfunc)) 
Traceback (most recent call last):
File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'xaxis'
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

python plot graph matplotlib

7
推荐指数
1
解决办法
9969
查看次数

Python:通过字符串中的名称访问结构字段

在Scapy的,我想比较了多种任意两个包之间的头字段的ab.此字段列表是预定义的,例如:

fieldsToCompare = ['tos', 'id', 'len', 'proto'] #IP header
Run Code Online (Sandbox Code Playgroud)

通常我会单独做:

if a[IP].tos == b[IP].tos:
   ... do stuff...
Run Code Online (Sandbox Code Playgroud)

有没有办法从字符串列表中访问这些包字段,包括调用每个字符串的内容?喜欢:

for field in fieldsToCompare:
    if a[IP].field == b[IP].field:
         ... do stuff...
Run Code Online (Sandbox Code Playgroud)

python ip field structure scapy

7
推荐指数
1
解决办法
8446
查看次数

Python:argparse获取可变大小的列表

在Python中,使用argparse,我想要一个输入参数来获取可变数量的文件,例如:

$ myScript --aParameter file1 file2 file3 ... fileN
Run Code Online (Sandbox Code Playgroud)

怎么办?

parser.add_argument( "--aParameter", nargs=????, type=str,
                        help="Provide a list of files to analyze",
                        default=None)
Run Code Online (Sandbox Code Playgroud)

python input argparse

7
推荐指数
1
解决办法
2669
查看次数

检查linux上的IOMMU支持

我想在任何给定的Linux机器上验证是否支持PCI passthrough.经过一段谷歌搜索后,我发现我应该检查是否支持IOMMU,我这样做是通过运行:

dmesg | grep IOMMU   
Run Code Online (Sandbox Code Playgroud)

如果它支持IOMMU(而不是IOMMUv2),我会得到:

IOMMU                                                          
[    0.000000] DMAR: IOMMU enabled
[    0.049734] DMAR-IR: IOAPIC id 8 under DRHD base  0xfbffc000 IOMMU 0
[    0.049735] DMAR-IR: IOAPIC id 9 under DRHD base  0xfbffc000 IOMMU 0
[    1.286567] AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    1.286568] AMD IOMMUv2 functionality not available on this system
Run Code Online (Sandbox Code Playgroud)

...... DMAR: IOMMU enabled我正在寻找的地方.

现在,如果计算机在没有重新启动的情况下运行了几天,那么[ 0.000000] DMAR: IOMMU enabled 使用上一个命令在日志中可能不再出现该第一条消息.

当该消息从日志中消失时,有没有办法检查IOMMU支持?

linux pci iommu

7
推荐指数
1
解决办法
2万
查看次数

Numpy:使用无限范围的垃圾箱

在我的Python脚本中,我有浮动,我想要bin.现在我正在做:

min_val = 0.0
max_val = 1.0
num_bins = 20
my_bins = numpy.linspace(min_val, max_val, num_bins)
hist,my_bins = numpy.histogram(myValues, bins=my_bins)
Run Code Online (Sandbox Code Playgroud)

但现在我想再添加两个箱来解释<0.0的值和> 1.0的值.因此,一个bin应该包括(-inf,0)中的所有值,另一个包含在[1,inf)中

在使用numpy的histogram功能时,有没有直接的方法呢?

python numpy range infinite bin

6
推荐指数
1
解决办法
1770
查看次数

Scapy:我如何获得完整的IP包头?

在Scapy中,我想手动匹配数据包及其相应的ICMP超时消息.

我需要匹配:

  • ICMP数据包的IP-in-ICMP字段
  • IP报头和我的数据包的前8个字节ICMP数据包不是问题:

    icmpPayload = str(icmpPacket [ICMP] .payload)

至于数据包的前8个字节,我只需要做:

str(myPacket[IP].payload)[:8]
Run Code Online (Sandbox Code Playgroud)

我不知道如何获取IP头myPacket.我现在所做的就是用前8个字节替换整个数据包中的有效负载.如果应用于数千个数据包,这种搜索和替换可能需要太长时间,我担心:

 strOfMyPacket = str(myPacket[IP])
 strOfMyPacket.replace(str(myPacket[IP].payload),str(myPacket[IP].payload)[:8],1)
Run Code Online (Sandbox Code Playgroud)

任何更快的方式,让我只做以下几点?

 partOfPayload = str(myPacket[IP].payload)[:8]
 fullHeader = _______
 stringToCompare = fullHeader + partOfPayload
Run Code Online (Sandbox Code Playgroud)

python ip header scapy

6
推荐指数
2
解决办法
6773
查看次数

ICMP类型11数据包有效负载的大小

当类型为11时,ICMP数据包有效负载的大小是多少,即超过时间?由于它包含IP报头和生成ICMP消息的IP数据包有效负载的前8个字节,我认为其大小为20 + 8 = 28.

我正在重播TTL = 1的一些常见用户流量.在我倾倒的ICMP消息中,我注意到:

  • UDP数据包生成的所有ICMP数据包都具有大小为28字节的有效负载
  • TCP数据包生成的所有数据包都有40字节的有效负载

由于我需要通过比较这些字节来匹配ICMP超时消息和触发它们的数据包,因此这条信息是必不可少的,但我无法弄清楚为什么会发生这种情况.

ip size payload packet icmp

6
推荐指数
1
解决办法
4103
查看次数

抑制rpy2中的警告

当我在python中导入R时,使用rpy2,如何禁止警告?

似乎在R中你必须做到以下几点

options(warn=-1)
Run Code Online (Sandbox Code Playgroud)

...但我不熟悉R.如何在python中执行此操作?

python warnings r rpy2

6
推荐指数
3
解决办法
1847
查看次数

了解/ boot/config文件

/boot/config-$kernel_version我看到的事情:

CONFIG_X86_TSC=y
CONFIG_CAN_TSCAN1=m
Run Code Online (Sandbox Code Playgroud)

现在,我认为这y代表了yes,这意味着选项已设定.但是怎么样m

linux configuration kernel linux-kernel

6
推荐指数
1
解决办法
8366
查看次数