怎样把用ethernet抓到的如何抓取手机数据包包转换成汉字

菱科数据以太网/RS232C通信协议转换器-大连菱科数据通信技术有限公司
<META NAME="description" content="菱科数据以太网/RS232C通信协议转换器-大连菱科数据通信技术有限公司- 菱科数据以太网/RS232C通信协议转换器Enet-R■ 专用于工业自动化和办公自动化系统的通信协议转换器。■ 具有RS232C接口和以太网的100Base-TX/10Base-T接口,实现它们之间的一
大连菱科数据通信技术有限公司
大连菱科数据通信技术有限公司
先生 (营业部部长)
菱科数据以太网/RS232C通信协议转换器
300){this.height=300}if(this.width>400){this.width=400}">
产品型号:
产品品牌:
产品规格:
价格说明:
&&&&&菱科数据以太网/RS232C通信协议转换器Enet-R■&专用于工业自动化和办公自动化系统的通信协议转换器。■&具有RS232C接口和以太网的100Base-TX/10Base-T接口,实现它们之间的一对一通信。■&具有多功能、小型化、轻便的特点。■&由串口或者TelnetLogin可以方便的进入程序模式,把串口通道的通信条件、Ethernet通道的各种地址的设定一次性写入FLASHROM保存,使具有不同通信协议的双方相互通信。■&串口通道侧接收缓冲96k字节、发送缓冲96k字节。■&最高通信速率230.4Kbps.完成全双工通信。■&通信对象不受任何限制,由用户任意选择,如PC、PLC、Workstation等。■&与某些单一功能的,业余的协议转换器相比,ENET-R是专业的通信协议转换器,它可以不受传送数据长度,时间的限制,始终以最高的速度实时地在以太网与RS232C之间进行双方向的协议转换与数据传送。&详情请登录公司网站:http//www..cn本次销售超低售价:1,500.00元
大连菱科数据通信技术有限公司
先生 (营业部部长)
电  话:
传  真:
移动电话:
在线联系:
公司地址:
中国辽宁大连大连市高新园区火炬路1号A座405号
邮  编:
公司主页:
其它产品信息
共 11 条信息,当前显示第 1
- 11 条,共 1 页
大连菱科数据通信技术有限公司 &公司地址:中国辽宁大连大连市高新园区火炬路1号A座405号
先生 (营业部部长) 电话: 传真:
免责声明: 以上所展示的信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责。 对此不承担任何责任。
提供服务支持 &串口转以太网数据网关(翻译)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
串口转以太网数据网关(翻译)
串&#8203;口&#8203;转&#8203;以&#8203;太&#8203;网&#8203;数&#8203;据&#8203;网&#8203;关&#8203;,&#8203;免&#8203;费
大小:8.03MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢当前位置:&&
如何利用libpcap和Python嗅探数据包
&&&&发布时间:&&
&&&& 一提到Python获取数据包的方式,相信很多Python爱好者会利用Linux的libpcap软件包或利用Windows下的WinPcap可移植版的方式进行抓取数据包,然后再利用dpkt软件包进行协议分析,我们这里想换一个角度去思考:
1. Python版...
&一提到Python获取数据包的方式,相信很多Python爱好者会利用Linux的libpcap软件包或利用Windows下的WinPcap可移植版的方式进行抓取数据包,然后再利用dpkt软件包进行协议分析,我们这里想换一个角度去思考: & &1. Python版本的pcap存储内存数据过小,也就是说缓存不够,在高并发下容易发生丢包现象,其实C版本的也同样存在这样的问题,只不过Python版本的缓存实在是过低,让人很郁闷。 & &2. dpkt协议分析并非必须,如果你对RFC 791和RFC 793等协议熟悉的话,完全可以使用struct.unpack的方式进行分析。 & &如果你平常习惯使用tcpdump抓取数据包的话,完全可以使用它来代替pcap软件包,只不过我们需要利用tcpdump将抓取的数据以pcap格式进行保存,说道这里大家一定会想到Wireshark工具,具体命令如下: & tcpdump dst 10.13.202.116 and tcp dst port 80 -s 0 -i eth1 -w ../pcap/tcpdump.pcap -C 1k -W 5我们首先需要对pcap文件格式有所了解,具体信息大家可以参考其他资料文档,我这里只说其重要的结构体组成,如下:sturct pcap_file_header
struct pcap_pkthdr
struct timeval
}这里需要说明的一点是,因为在Python的世界里一切都是对象,所以往往Python在处理数据包的时候感觉让人比较麻烦。Python提供了几个libpcapbind,http://monkey.org/~dugsong/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()返回的元组中,第一个参数为接收到的数据包,第二个参数为被核心丢弃的数据包。 & 至于对于如何监控tcpdump生成的pcap文件数据,大家可以通过pyinotify软件包来实现,如下: &class Packer(pyinotify.ProcessEvent):
def __init__(self, product):
self.product = product
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.product.put(filename)
if self.product.qsize() & 1:
logger.debug("create consumer product.qsize: %s" % self.product.qsize())
consumer = Consumer(self.product)
consumer.start()
except Exception, errmsg:
logger.error("create consumer failed: %s" % errmsg)
return filename
class Factory(object):
def __init__(self, product):
self.product = product
self.manager = pyinotify.WatchManager()
self.mask = pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY
def work(self):
notifier = pyinotify.ThreadedNotifier(self.manager, Packer(self.product))
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, product, stack):
threading.Thread.__init__(self)
self.product = product
self.stack = stack
self.pcap_pkthdr = {}
def run(self):
while True:
filename = self.product.get()
f = open(filename, "rb")
readlines = f.read()
offset = 24
while len(readlines) & offset:
self.pcap_pkthdr["len"] = readlines[offset+12:offset+16]
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):
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
memcache[key]["data"] = tcpacket.data
if memcache.has_key(key):
memcache[key]["response"] = dpkt.http.Request(memcache[key]["data"])
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 ')
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__':
169IT站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.转载请注明:文章转载自:[]本文标题:
本类别最新文章推荐:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分80阅读权限10帖子精华可用积分80 信誉积分64 专家积分0 在线时间51 小时注册时间最后登录
白手起家, 积分 80, 距离下一级还需 120 积分
帖子主题精华可用积分80 信誉积分64 专家积分0 在线时间51 小时注册时间最后登录
论坛徽章:0
开发过程中遇到问题,请教各位大侠:
linux目标板作为传输设备,接收解调无线口数据并通过以太网接口转发出去。但如果通过无线接口收到一包发给本机的完整的以太网数据包,包含mac头、IP头的数据包,请问如何将该数据包放入本机TCP/IP协议栈进行处理,就好像本机从以太网接口收到一包数据一样?
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分1138阅读权限30帖子精华可用积分1138 信誉积分1170 专家积分0 在线时间3087 小时注册时间最后登录
家境小康, 积分 1138, 距离下一级还需 862 积分
帖子主题精华可用积分1138 信誉积分1170 专家积分0 在线时间3087 小时注册时间最后登录
认证徽章论坛徽章:44
你的意思就是转发吧?解调无线口是什么东西?
心急摸不着热屁股
UID空间积分0 积分80阅读权限10帖子精华可用积分80 信誉积分64 专家积分0 在线时间51 小时注册时间最后登录
白手起家, 积分 80, 距离下一级还需 120 积分
帖子主题精华可用积分80 信誉积分64 专家积分0 在线时间51 小时注册时间最后登录
论坛徽章:0
无线接口就理解成其它不同于以太网的接口。就好比从串口收到了发给本机的以太网数据包,怎么把这个数据包放入TCP/IP协议栈中处理?
UID空间积分0 积分80阅读权限10帖子精华可用积分80 信誉积分64 专家积分0 在线时间51 小时注册时间最后登录
白手起家, 积分 80, 距离下一级还需 120 积分
帖子主题精华可用积分80 信誉积分64 专家积分0 在线时间51 小时注册时间最后登录
论坛徽章:0
或者更简单的描述,我的应用程序获取了一个其它设备发给本机的ping包,包含mac头和ip头,如何将该ping包放入本机协议栈中让协议栈处理回复ping reply?
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处发送Ethernet+ARP数据包_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
发送Ethernet+ARP数据包
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢

我要回帖

更多关于 抓取数据包 的文章

 

随机推荐