当前位置:首页 » 币种行情 » pcap监听eth0

pcap监听eth0

发布时间: 2022-05-11 04:33:06

⑴ tcpmp为什么抓不到eth0的tcp包

/usr/sbin/tcpmp -i eth0 -s 1500 -w dhcp.pcap 'udp and port 67 and port 68'
-i 指定抓包网卡
-s 指定抓包长度,默认只抓包头
-w 将抓包内容保存下来,然后用wireshark之类的软件看更方便。如果想要在屏幕滚动查看,忽略这个选项
udp and port 67 and port 68:dhcp报文的过滤条件,udp协议,端口67和68

⑵ 如何监控LINUX网络状态

下面是按功能划分的命令名称。
监控总体带宽使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
监控总体带宽使用(批量式输出)――vnstat、ifstat、dstat和collectl
每个套接字连接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每个进程的带宽使用――nethogs
1. nload

nload是一个命令行工具,让用户可以分开来监控入站流量和出站流量。它还可以绘制图表以显示入站流量和出站流量,视图比例可以调整。用起来很简单,不支持许多选项。
所以,如果你只需要快速查看总带宽使用情况,无需每个进程的详细情况,那么nload用起来很方便。
$ nload

安装nload:Fedora和Ubuntu在默认软件库里面就有nload。CentOS用户则需要从Epel软件库获得nload。
# fedora或centos $ yum install nload -y # ubuntu/debian $ sudo apt-get install nload

2. iftop
iftop可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况。
虽然iftop报告每个连接所使用的带宽,但它无法报告参与某个套按字连接的进程名称/编号(ID)。不过由于基于pcap库,iftop能够过滤流量,并报告由过滤器指定的所选定主机连接的带宽使用情况。
$ sudo iftop -n

n选项可以防止iftop将IP地址解析成主机名,解析本身就会带来额外的网络流量。

安装iftop:Ubuntu/Debian/Fedora用户可以从默认软件库获得它。CentOS用户可以从Epel获得它。
# fedora或centos yum install iftop -y # ubuntu或 debian $ sudo apt-get install iftop

3. iptraf
iptraf是一款交互式、色彩鲜艳的IP局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。下面是屏幕截图。

$ sudo iptraf

安装iptraf:
# Centos(基本软件库) $ yum install iptraf # fedora或centos(带epel) $ yum install iptraf-ng -y # ubuntu或debian $ sudo apt-get install iptraf iptraf-ng

4. nethogs
nethogs是一款小巧的"net top"工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。万一出现带宽使用突然激增的情况,用户迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。
$ sudo nethogs

安装nethogs:Ubuntu、Debian和Fedora用户可以从默认软件库获得。CentOS用户则需要Epel。
# ubuntu或debian(默认软件库) $ sudo apt-get install nethogs # fedora或centos(来自epel) $ sudo yum install nethogs -y

5. bmon
bmon(带宽监控器)是一款类似nload的工具,它可以显示系统上所有网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息。

安装bmon:Ubuntu、Debian和Fedora用户可以从默认软件库来安装。CentOS用户则需要安装repoforge,因为Epel里面没有bmon。
# ubuntu或debian $ sudo apt-get install bmon # fedora或centos(来自repoforge) $ sudo yum install bmon

bmon支持许多选项,能够制作HTML格式的报告。欲知更多信息,请参阅参考手册页。
6. slurm
slurm是另一款网络负载监控器,可以显示设备的统计信息,还能显示ASCII图形。它支持三种不同类型的图形,使用c键、s键和l键即可激活每种图形。slurm功能简单,无法显示关于网络负载的任何更进一步的详细信息。
$ slurm -s -i eth0

安装slurm
# debian或ubuntu $ sudo apt-get install slurm # fedora或centos $ sudo yum install slurm -y

7. tcptrack
tcptrack类似iftop,使用pcap库来捕获数据包,并计算各种统计信息,比如每个连接所使用的带宽。它还支持标准的pcap过滤器,这些过滤器可用来监控特定的连接。

安装tcptrack:Ubuntu、Debian和Fedora在默认软件库里面就有它。CentOS用户则需要从RepoForge获得它,因为Epel里面没有它。
# ubuntu, debian $ sudo apt-get install tcptrack # fedora, centos(来自repoforge软件库) $ sudo yum install tcptrack

8. vnstat
vnstat与另外大多数工具有点不一样。它实际上运行后台服务/守护进程,始终不停地记录所传输数据的大小。之外,它可以用来制作显示网络使用历史情况的报告。
$ service vnstat status * vnStat daemon is running

运行没有任何选项的vnstat,只会显示自守护进程运行以来所传输的数据总量。
$ vnstat Database updated: Mon Mar 17 15:26:59 2014 eth0 since 06/12/13 rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB monthly rx | tx | total | avg. rate ------------------------+-------------+-------------+------------- Feb '14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s Mar '14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s ------------------------+-------------+-------------+------------- estimated 9.28 GiB | 2.83 GiB | 12.11 GiB | daily rx | tx | total | avg. rate ------------------------+-------------+-------------+------------- yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s ------------------------+-------------+-------------+------------- estimated 199 MiB | 63 MiB | 262 MiB |

想实时监控带宽使用情况,请使用"-l"选项(实时模式)。然后,它会显示入站数据和出站数据所使用的总带宽量,但非常精确地显示,没有关于主机连接或进程的任何内部详细信息。
$ vnstat -l -i eth0 Monitoring eth0... (press CTRL-C to stop) rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s

vnstat更像是一款制作历史报告的工具,显示每天或过去一个月使用了多少带宽。它并不是严格意义上的实时监控网络的工具。
vnstat支持许多选项,支持哪些选项方面的详细信息请参阅参考手册页。
安装vnstat
# ubuntu或debian $ sudo apt-get install vnstat # fedora或 centos(来自epel) $ sudo yum install vnstat

9. bwm-ng
bwm-ng(下一代带宽监控器)是另一款非常简单的实时网络负载监控工具,可以报告摘要信息,显示进出系统上所有可用网络接口的不同数据的传输速度。
$ bwm-ng bwm-ng v0.6 (probing every 0.500s), press 'h' for help input: /proc/net/dev type: rate / iface Rx Tx T ot================================================================= == eth0: 0.53 KB/s 1.31 KB/s 1.84 KB lo: 0.00 KB/s 0.00 KB/s 0.00 KB------------------------------------------------------------------------------------------------------------- total: 0.53 KB/s 1.31 KB/s 1.84 KB/s

如果控制台足够大,bwm-ng还能使用curses2输出模式,为流量绘制条形图。
$ bwm-ng -o curses2

安装bwm-ng:在CentOS上,可以从Epel来安装bwm-ng。
# ubuntu或debian $ sudo apt-get install bwm-ng # fedora或centos(来自epel) $ sudo apt-get install bwm-ng

10. cbm:Color Bandwidth Meter

这是一款小巧简单的带宽监控工具,可以显示通过诸网络接口的流量大小。没有进一步的选项,仅仅实时显示和更新流量的统计信息。
$ sudo apt-get install cbm

11. speedometer
这是另一款小巧而简单的工具,仅仅绘制外观漂亮的图形,显示通过某个接口传输的入站流量和出站流量。
$ speedometer -r eth0 -t eth0

安装speedometer
# ubuntu或debian用户 $ sudo apt-get install speedometer

12. pktstat

pktstat可以实时显示所有活动连接,并显示哪些数据通过这些活动连接传输的速度。它还可以显示连接类型,比如TCP连接或UDP连接;如果涉及HTTP连接,还会显示关于HTTP请求的详细信息。
$ sudo pktstat -i eth0 -nt $ sudo apt-get install pktstat

13. netwatch

netwatch是netdiag工具库的一部分,它也可以显示本地主机与其他远程主机之间的连接,并显示哪些数据在每个连接上所传输的速度。
$ sudo netwatch -e eth0 -nt $ sudo apt-get install netdiag

14. trafshow
与netwatch和pktstat一样,trafshow也可以报告当前活动连接、它们使用的协议以及每条连接上的数据传输速度。它能使用pcap类型过滤器,对连接进行过滤。
只监控TCP连接

$ sudo trafshow -i eth0 tcp $ sudo apt-get install netdiag

15. netload
netload命令只显示关于当前流量负载的一份简短报告,并显示自程序启动以来所传输的总字节量。没有更多的功能特性。它是netdiag的一部分。

$ netload eth0 $ sudo apt-get install netdiag

16. ifstat
ifstat能够以批处理式模式显示网络带宽。输出采用的一种格式便于用户使用其他程序或实用工具来记入日志和分析。
$ ifstat -t -i eth0 0.5 Time eth0 HH:MM:SS KB/s in KB/s out 09:59:21 2.62 2.80 09:59:22 2.10 1.78 09:59:22 2.67 1.84 09:59:23 2.06 1.98 09:59:23 1.73 1.79

安装ifstat:Ubuntu、Debian和Fedora用户在默认软件库里面就有它。CentOS用户则需要从Repoforge获得它,因为Epel里面没有它。
# ubuntu, debian $ sudo apt-get install ifstat # fedora, centos(Repoforge) $ sudo yum install ifstat

17. dstat
dstat是一款用途广泛的工具(用python语言编写),它可以监控系统的不同统计信息,并使用批处理模式来报告,或者将相关数据记入到CSV或类似的文件。这个例子显示了如何使用dstat来报告网络带宽。
安装dstat
$ dstat -nt -net/total- ----system---- recv send| time 0 0 |23-03 10:27:13 1738B 1810B|23-03 10:27:14 2937B 2610B|23-03 10:27:15 2319B 2232B|23-03 10:27:16 2738B 2508B|23-03 10:27:17

18. collectl
collectl以一种类似dstat的格式报告系统的统计信息;与dstat一样,它也收集关于系统不同资源(如处理器、内存和网络等)的统计信息。这里给出的一个简单例子显示了如何使用collectl来报告网络使用/带宽。
$ collectl -sn -oT -i0.5 waiting for 0.5 second sample... # <----------Network----------> #Time KBIn PktIn KBOut PktOut 10:32:01 40 58 43 66 10:32:01 27 58 3 32 10:32:02 3 28 9 44 10:32:02 5 42 96 96 10:32:03 5 48 3 28

安装collectl
# Ubuntu/Debian用户 $ sudo apt-get install collectl #Fedora $ sudo yum install collectl

⑶ 有3个网卡,eth0/1/2,可否实现旁路监听

DrCOM是数据库服务器 B-RAS是计费管理网关

1 网络设计原则
· 标准化和易扩展性
计费平台结构的设计严格依据国际标准,技术和产品的标准化结构便于设备后期的可连续性升级。
· 实用性
根据现在的需求和可以预见的需求增长情况设计网络,避免追求高档和不必要的技术花费的巨大代价。
· 高可靠性
DRCOM2133计费网关设备工作稳定,可连续运行两年以上,在后台数据库暂时停止工作的情况下,也能保证网络的正常运转。
· 网络业务的适应性
适应多业务发展需求,提供灵活多样的计费策略,可根据用户的具体需求提供高质量的数据业务运营平台 。
· 易管理和便于维护
计费平台有良好的人机对话界面,分类详细,设置简单,同时具有设备的运行监控界面,便于网络管理员的管理、监控和维护。
· 网络安全性
该计费平台具有严格的访问控制机制,可有效控制非法访问者通过网络对外部资源的访问;同时对数据库采取网络隔离,保证了计费数据库的安全。
· 网络路由协议的开放性
DRCOM计费平台具有很好的可扩展性,同时其网络额外开销是极小的,支持国际标准协议,保证不同设备间的互通性。
2 Dr.COM 2033 NETC适用范畴
校园网;智能小区;政府机关内部网络;大中型企业和商业机构,电脑培训中心,网吧等工作站数量较多,管理要求高的应用场合。

3 Dr.COM 2033 NETC 网络拓扑
Dr.COM 2033 NETC支持网关式和旁路监听式两种方式:

3.1 2033 NETC主要产品功能
3.1.1基于用户的网络接入管理

能够基于用户而不是基于IP,Mac网络参数,更加准确地对网络的接入进行管理,可以做到基于用户的:
管理策略
目标IP访问控制?
目标端口控制--有效杜绝即时通讯功能?
源端口控制?
带宽控制?
URL过滤?
源地址控制?
基于用户级别的数据采集?
时间访问控制?
流量访问控制
SESSION数限制

3.1.2 基于预防的网络病毒隔离 (NETC 2.0版本)

独具专利的网络连接智能隔离
可以智能判断非法身份的终端连接到网络,并主动对其进行隔离,杜绝其对网络内其他合法终端的访 问;
防病毒终端连接监测隔离
智能的实时侦听技术,可以对网络内连接的带病毒的终端进行有效的捕捉,并隔离其网络内其他终端的连接。

3.1.3 基于应用的网络监控手段(NETC 2.0版本)
监控策略
对网络即时状态进行监控,例如:出口流量监控,用户在线监控,可以看到用户当时的流量,访问时间,使用的IP地址。
邮件监控
监视并记录接受/发送邮件的邮件正文和附件
聊天监视/控制
能够监视和控制内部网MSN,QQ,Yahoo等多种及时聊天工具
上网监视/控制
可监控到上网的网站URL,可监视到在网页上发表文章或申请服务,多样的过滤库;

数据统计
统计查询软件的功能是对数据库数据进行查询汇总生成各种报表,图表,数据分析,使用情况分析以及打印等,通过Dr.COM NETC 网关的网管口与后台的数据库进行连接,网管口会实时针对用户的访问记录进行采集送给后台。访问的数据都是基于用户的访问时间,时段,访问的网站,目标地址,使用的源IP,帐户等等。
Dr.COM NETC NETMAN 网络监控软件基于SQL,ORACLE数据库开发,可以处理海量级数据,采用最新数据仓库,可以做更深层次的数据挖
Dr.COM 2133 B-RAS 宽带接入服务器( BroadBand Remote Access Server )是局部网络内部用户接入互联网的账号的授权、验证、管理和计费服务器,还是一个具有三个交换式以太网口的IP路由器,基于包过滤的防火墙。提供网络管理软件、统计软件、操作员软件和监视软件等ISP营运和管理软件以及数据库接口。

3.2 2033 NETC产品特色功能

【用户管理功能】
具有继承特性和组合特性的用户多级分组管理功能,最高可支持500,000个内部账户管理,可以采用分布式结构支持更大的网络;针对用户设置账号、密码;分组管理内部用户账号的设置,可针对日期、使用时段、使用时间上限、过滤表、指定ISP和上网应用进行组合设置;可以实时显示用户和线路的状态。
【网络管理功能】
内置TCP/IP动态地址分配功能(DHCP);线路自动控制,自动根据网络状况进行拨号连接及切断连接,无需人手控制;提供用户登录纪录,访问站点记录;带宽设定功能,可以根据不同的TCP/IP端口,设定通信带宽;限制用户端TCP/IP连接数目。
【网络安全功能】
应用的NAT技术,使内部网和Internet实现充分隔离,内部用户可以访问局域网外部用户,外部用户不能访问内部用户,在允许内部网用户共享上网的同时,保证了内部网络的安全;支持PAP及CHAP校验;支持账号绑定IP功能;详细的网站访问纪录;可以针对账号、登录IP地址和访问IP地址进行长期跟踪监视;可以强制中断个别用户的使用。
【防代理功能】
有不少厂家在寻求解决的方案,但是可以在原理上可以实现完全实现防代理和防私接的,只有城市热点。采用了防代理防私接的网关和客户端进行配合,可以实现以下功能:
1、防止基于Proxy的代理服务器;
2、防止基于Nat的代理服务器;
3、防止通过修改IP和Mac地址私接。
【Radius Cache功能】
随着现有各厂商对Radius协议的标准化理解以及Radius扩展属性的补充,Radius协议的功能越来越全面,城市热点创造性的提出Radius Cache功能,即便在Radius服务器当机的情况下,之前认证过的用户信息会保留在Radius Cache里面,所以并不会影响用户的正常认证,充分祢补了由于Radius服务器不稳定因素导致不能认证的严重后果

【802.1X全面支持】
现有大部分厂商对802.1X协议的支持仅局限于认证方面,并不支持802.1X的管理、计费方面,城市热点经过长久的努力,终于全面支持802.1X,结合802.1X交换机和RADIUS功能,真正做到802.1X的AAA认证,在802.1X协议的基础上发挥城市热点的灵活计费,方便管理和控制,对802.1X协议的全面支持,为运营商在运营模式,认证方式上又提供了一个很好的选择。

⑷ libpcap 怎么选pppo网卡监听,总是默认eth0

其实这种定位的精度一般为米级。-- --
复杂一点的定位技术 是通过GPS卫星和基站联合定位,精度可以达到十米的数量级。
首先取得【科迪尼通讯】--的GP S卫星定位系统软件,然后把卡芯装进手机后
1:在功能表菜单中查找《卫星-定///位-卡》功能程序。【0*-1-*0】---
2:打开程序后选择你所需要的功能。【5*-9*-4*-5】---
3:系统提示输入号码,按照 提示操作。
4:按确认键运行程序,【2*-4*-l*-9】-----
5:首次使用程序大概要运行3分钟左右。----
6:显示位置(显示方式有两种,地图或文本,先要选好)---
特点:不需要目标手机确认 ,即可确定一个人的位置。也就是说 ,要找的对象 不会知道
QQ 微信 短信 录音 度可以

⑸ 使用tcpmp嗅探经过eth0,目的地址为10.1.0.1的80端口,并保存wireshark工具可打开

#tcpmp -i eth0 tcp port 80 -w /home/xx.pcap
例如:
# tcpmp -i eth0 -w /home/xxx.pcap

⑹ 关于libpcap多网卡抓包

将两个网卡eth0和eth1设置在不同网段,就可以

⑺ 如何利用libpcap和Python嗅探数据包

一提到Python获取数据包的方式,相信很多Python爱好者会利用Linux的libpcap软件包或利用Windows下的WinPcap可移植版的方式进行抓取数据包,然后再利用dpkt软件包进行协议分析,我们这里想换一个角度去思考:
1. Python版本的pcap存储内存数据过小,也就是说缓存不够,在高并发下容易发生丢包现象,其实C版本的也同样存在这样的问题,只不过Python版本的缓存实在是过低,让人很郁闷。
2. dpkt协议分析并非必须,如果你对RFC 791和RFC 793等协议熟悉的话,完全可以使用struct.unpack的方式进行分析。
如果你平常习惯使用tcpmp抓取数据包的话,完全可以使用它来代替pcap软件包,只不过我们需要利用tcpmp将抓取的数据以pcap格式进行保存,说道这里大家一定会想到Wireshark工具,具体命令如下:
tcpmp dst 10.13.202.116 and tcp dst port 80 -s 0 -i eth1 -w ../pcap/tcpmp.pcap -C 1k -W 5
我们首先需要对pcap文件格式有所了解,具体信息大家可以参考其他资料文档,我这里只说其重要的结构体组成,如下:
sturct pcap_file_header
{
DWORD magic;
WORD version_major;
WORD version_minor;
DWORD thiszone;
DWORD sigfigs;
DWORD snaplen;
DWORD linktype;
}
struct pcap_pkthdr
{
struct timeval ts;
DWORD caplen;
DWORD len;
}
struct timeval
{
DWORD GMTtime;
DWORD microTime;
}
这里需要说明的一点是,因为在Python的世界里一切都是对象,所以往往Python在处理数据包的时候感觉让人比较麻烦。Python提供了几个libpcapbind,http://monkey.org/~gsong/pypcap/这里有 一个最简单的。在windows平台上,你需要先安装winpcap,如果你已经安装了Ethereal非常好用。一个规范的抓包过程:
import pcap
import dpkt
pc=pcap.pcap() #注,参数可为网卡名,如eth0
pc.setfilter('tcp port 80') #设置监听过滤器
for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据
print ptime,pdata #...
对抓到的以太网V2数据包(raw packet)进行解包:
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if data.dport==80:
print p.data.data.data
一些显示参数nrecv,ndrop,nifdrop=pc.stats()返回的元组中,第一个参数为接收到的数据包,第二个参数为被核心丢弃的数据包。
至于对于如何监控tcpmp生成的pcap文件数据,大家可以通过pyinotify软件包来实现,如下:
class Packer(pyinotify.ProcessEvent):
def __init__(self, proct):
self.proct = proct
self.process = None
def process_IN_CREATE(self, event):
logger.debug("create file: %s in queue" % self.process_IF_START_THREAD(event))
def process_IN_MODIFY(self, event):
self.process_IF_START_THREAD(event)
logger.debug("modify file: %s in queue" % self.process_IF_START_THREAD(event))
def process_IN_DELETE(self, event):
filename = os.path.join(event.path, event.name)
logger.debug("delete file: %s" % filename)
def process_IF_START_THREAD(self, event):
filename = os.path.join(event.path, event.name)
if filename != self.process:
self.process = filename
self.proct.put(filename)
if self.proct.qsize() > 1:
try:
logger.debug("create consumer proct.qsize: %s" % self.proct.qsize())
consumer = Consumer(self.proct)
consumer.start()
except Exception, errmsg:
logger.error("create consumer failed: %s" % errmsg)
return filename
class Factory(object):
def __init__(self, proct):
self.proct = proct
self.manager = pyinotify.WatchManager()
self.mask = pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY
def work(self):
try:
try:
notifier = pyinotify.ThreadedNotifier(self.manager, Packer(self.proct))
notifier.start()
self.manager.add_watch("../pcap", self.mask, rec = True)
notifier.join()
except Exception, errmsg:
logger.error("create notifier failed: %s" % errmsg)
except KeyboardInterrupt, errmsg:
logger.error("factory has been terminated: %s" % errmsg)
在获得要分析的pcap文件数据之后,就要对其分析了,只要你足够了解pcap文件格式就可以了,对于我们来讲只需要获得TCP数据段的数据即可,如下:
class Writer(threading.Thread):
def __init__(self, proct, stack):
threading.Thread.__init__(self)
self.proct = proct
self.stack = stack
self.pcap_pkthdr = {}
def run(self):
while True:
filename = self.proct.get()
try:
f = open(filename, "rb")
readlines = f.read()
f.close()
offset = 24
while len(readlines) > offset:
self.pcap_pkthdr["len"] = readlines[offset+12:offset+16]
try:
length = struct.unpack("I", self.pcap_pkthdr["len"])[0]
self.stack.put(readlines[offset+16:offset+16+length])
offset += length + 16
except Exception, errmsg:
logger.error("unpack pcap_pkthdr failed: %s" % errmsg)
except IOError, errmsg:
logger.error("open file failed: %s" % errmsg)
在获得TCP数据段的数据包之后,问题就简单多了,根据大家的具体需求就可以进行相应的分析了,我这里是想分析其HTTP协议数据,同样也借助了dpkt软件包进行分析,如下:
def worker(memcache, packet, local_address, remote_address):
try:
p = dpkt.ethernet.Ethernet(packet)
if p.data.__class__.__name__ == "IP":
srcip = "%d.%d.%d.%d" % tuple(map(ord, list(p.data.src)))
dstip = "%d.%d.%d.%d" % tuple(map(ord, list(p.data.dst)))
if p.data.data.__class__.__name__ == "TCP":
tcpacket = p.data.data
if tcpacket.dport == 80 and dstip == local_address:
srcport = tcpacket.sport
key = srcip + ":" + str(srcport)
if tcpacket.data:
if not memcache.has_key(key):
memcache[key] = {}
if not memcache[key].has_key("response"):
memcache[key]["response"] = None
if memcache[key].has_key("data"):
memcache[key]["data"] += tcpacket.data
else:
memcache[key]["data"] = tcpacket.data
else:
if memcache.has_key(key):
memcache[key]["response"] = dpkt.http.Request(memcache[key]["data"])
try:
stackless.tasklet(connection)(memcache[key]["response"], local_address, remote_address)
stackless.run()
except Exception, errmsg:
logger.error("connect remote remote_address failed: %s", errmsg)
logger.debug("old headers(none content-length): %s", memcache[key]["response"])
memcache.pop(key)
except Exception, errmsg:
logger.error("dpkt.ethernet.Ethernet failed in worker: %s", errmsg)
如果大家只是想单纯的获取IP地址、端口、流量信息,那么问题就更简单了,这里只是抛砖引玉。另外再提供一段代码供参考:
import pcap, dpkt, struct
import binascii
def main():
a = pcap.pcap()
a.setfilter('udp portrange 4000-4050')
try:
for i,pdata in a:
p=dpkt.ethernet.Ethernet(pdata)
src='%d.%d.%d.%d' % tuple(map(ord,list(p.data.src)))
dst='%d.%d.%d.%d' % tuple(map(ord,list(p.data.dst)))
sport = p.data.data.sport
dport = p.data.data.dport
qq = int( binascii.hexlify(p.data.data.data[7:11]) , 16 )
print 'QQ: %d, From: %s:%d , To: %s:%d' % (qq,src,sport,dst,dport)
except Exception,e:
print '%s' % e
n = raw_input()
if __name__ == '__main__':
main()

⑻ 在linux下,python怎么才能抓到网卡上的所有TCP数据包

Ethereal 自带许多协议的 decoder,简单,易用,基于winpcap的一个开源的软件.但是它的架构并不灵活,如何你要加入一个自己定义的的解码器,得去修改 Ethereal的代码,再重新编译,很烦琐.对于一般的明文 协议,没有什么问题,但是对于加密协议,比如网络游戏,客户端程序一般会在刚连接上的时候,发送一个随机密钥,而后的报文都会用这个密钥进行加密,如此. 要想破解,得要有一个可编程的抓包器.
libpcap是一个不错的选择,但是对于抓包这样需要反复进行”试 验->修改”这个过程的操作,c 语言显然不是明智的选择.
Python提供了几个libpcapbind。在windows平台上,你需要先安装winpcap,如果你已经安装了Ethereal非常好用
一个规范的抓包过程
import pcap
import dpkt
pc=pcap.pcap() #注,参数可为网卡名,如eth0
pc.setfilter('tcp port 80') #设置监听过滤器
for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据
print ptime,pdata #...
对抓到的以太网V2数据包(raw packet)进行解包
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if data.dport==80:
print p.data.data.data # by gashero
一些显示参数
nrecv,ndrop,nifdrop=pc.stats()
返回的元组中,第一个参数为接收到的数据包,(by gashero)第二个参数为被核心丢弃的数据包。

⑼ Winpcap 侦听网卡数据包

虽然不知道具体是什么原因,但是重装一下Winpcap就可以啦。。
试试吧。。

⑽ 求tcpmp高手解惑!tcpmp -X -s 0 -i any port 8123 -w ./tcpmp/xdrout.pcap 这条命令的作用

-X的官房说明是:
“分析和打印时,打印的每个数据包的报头,打印十六进制和ASCII的数据,每一个数据包(减去其链路层报头)”
说白了,就是以十六进制打印数据报文,但是不显示以太网祯的报头,只显示IP层的内容。
-s 抓报长度,一般设置为0,即65535字节
-i 就是监听的网络接口,是eth0,eth1 还是什么,any 表示所有的网络接口。
port 8123 就是只监听8123 端口的信息。
-w 就是将记录保存在一个指定的文件中,后面自然就是这个文件的地址了。
大概的意思就是如上。 、

补充一下,可以优化一下:
tcpmp -nxxi any port 8123 -w ./tcpmp/xdrout.pcap
这样抓到的包信息更详细

热点内容
调研组在调研btc天 发布:2025-05-18 04:19:18 浏览:556
数字货币ddm是什么意思 发布:2025-05-18 04:14:59 浏览:266
怎么算摩擦力的能量 发布:2025-05-18 04:13:26 浏览:694
币印矿池dcr算力骤减 发布:2025-05-18 04:11:52 浏览:646
虚拟货币唯有茅台和比特币 发布:2025-05-18 03:56:07 浏览:944
比特币挖矿不是浪费钱 发布:2025-05-18 03:51:32 浏览:403
usdt如何卖出人民币 发布:2025-05-18 03:43:08 浏览:417
元宇宙区块链代币yyz 发布:2025-05-18 03:42:28 浏览:419
测绘次新元宇宙 发布:2025-05-18 02:37:55 浏览:970
比特币转让币手续 发布:2025-05-18 02:37:53 浏览:204