在我的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中获取此信息的任何简单方法?
在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)
我该怎么办?
在Scapy的,我想比较了多种任意两个包之间的头字段的a
和b
.此字段列表是预定义的,例如:
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中,使用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) 我想在任何给定的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支持?
在我的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
功能时,有没有直接的方法呢?
在Scapy中,我想手动匹配数据包及其相应的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) 当类型为11时,ICMP数据包有效负载的大小是多少,即超过时间?由于它包含IP报头和生成ICMP消息的IP数据包有效负载的前8个字节,我认为其大小为20 + 8 = 28.
我正在重播TTL = 1的一些常见用户流量.在我倾倒的ICMP消息中,我注意到:
由于我需要通过比较这些字节来匹配ICMP超时消息和触发它们的数据包,因此这条信息是必不可少的,但我无法弄清楚为什么会发生这种情况.
当我在python中导入R时,使用rpy2,如何禁止警告?
似乎在R中你必须做到以下几点
options(warn=-1)
Run Code Online (Sandbox Code Playgroud)
...但我不熟悉R.如何在python中执行此操作?
在/boot/config-$kernel_version
我看到的事情:
CONFIG_X86_TSC=y
CONFIG_CAN_TSCAN1=m
Run Code Online (Sandbox Code Playgroud)
现在,我认为这y
代表了yes
,这意味着选项已设定.但是怎么样m
?