在Scapy(或者甚至只是Python,为此),如何获得给定数据包的字节大小?我很想使用这个功能,len但我不确定它在数据包的情况下究竟会返回什么.
>>> len(IP(dst="www.google.com"))
20
>>> len(IP(dst="www.google.com")/TCP(dport=80))
40
Run Code Online (Sandbox Code Playgroud) 我R在我的Python脚本中通过rpy2库使用,我需要一个不在R的默认安装中的软件包.我该如何安装它?
install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Run Code Online (Sandbox Code Playgroud)
不行.
在Python上:
>>> install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'install' is not defined
Run Code Online (Sandbox Code Playgroud)
来自R:
> install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Installing package(s) into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning message:
In getDependencies(pkgs, dependencies, available, lib) :
package ‘DirichletReg’ is not available (for R version 2.14.1)
Run Code Online (Sandbox Code Playgroud) 我想跑:
./my_script.py a_file &
Run Code Online (Sandbox Code Playgroud)
...在当前文件夹中以...结尾的所有文件上.my_format,所以我这样做:
find . -type f -name "*.my_format" -exec ./my_script {} & \;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我应该如何包含&在-exec参数中?
在Python中,给定一个排序整数列表,我会按连续值对它们进行分组,并容忍1的间隙.
例如,给出一个列表my_list:
In [66]: my_list
Out[66]: [0, 1, 2, 3, 5, 6, 10, 11, 15, 16, 18, 19, 20]
Run Code Online (Sandbox Code Playgroud)
我想要以下输出:
[[0, 1, 2, 3, 5, 6], [10, 11], [15, 16, 18, 19, 20]]
Run Code Online (Sandbox Code Playgroud)
现在,如果我不必忍受1的差距,我可以应用这里解释的整洁解决方案:
import itertools
import operator
results = []
for k, g in itertools.groupby(enumerate(my_list), lambda (i,x):i-x):
group = map(operator.itemgetter(1), g)
results.append(group)
Run Code Online (Sandbox Code Playgroud)
有没有办法将我的额外要求纳入上述解决方案?如果没有,解决问题的最佳方法是什么?
当调试以segfault终止的程序时,电栅栏与gdb一起返回:
"ElectricFence Exiting: mprotect() failed: Cannot allocate memory
[Thread 0xb0bd4b70 (LWP 5363) exited]
Program exited with code 0377.
我其实认为电围栏会更有帮助.这是什么意思?我该如何解读这条信息呢?似乎没有任何可以看到的堆栈,或者至少bt不会返回任何东西.
任何建议都会非常感激.
谢谢!
在我使用的Python模块中matplotlib,我想确保它在我通过远程计算机运行脚本时也能正常工作ssh.所以我这样做:
import matplotlib
matplotlib.use('Agg')
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import numpy as np
import pylab
import scipy.stats
import scipy.stats.mstats
Run Code Online (Sandbox Code Playgroud)
有用.太糟糕了,当我直接在机器上运行它(不是远程机器!)时,它给了我以下警告:
对matplotlib.use()的这个调用没有效果,因为已经选择了后端; 必须 在首次导入pylab,matplotlib.pyplot或matplotlib.backends 之前调用matplotlib.use().
如何删除此邮件?
在matplotlib,当我log在一个轴上使用刻度时,可能会发生该轴没有主要刻度,只有较小的刻度.所以这意味着没有为整个轴显示标签.
如何指定我还需要标签以用于次要刻度?
我试过了:
plt.setp(ax.get_xticklabels(minor=True), visible=True)
Run Code Online (Sandbox Code Playgroud)
......但它并没有成功.
在我的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)