Exemple #1
0
 def test_notparam(self):
     """测试对findalldevs()函数传递参数时抛出异常"""
     e = None
     try:
         devlist = sendpkt.findalldevs("faeij")
     except Exception, e:
         pass
Exemple #2
0
 def test_nt_generic(self):
     """测试nt类操作系统下,肯定有个网口是通用设备"""
     if os.name == "nt":
         default_devname = "\\Device\\NPF_GenericDialupAdapter"
         devlist = sendpkt.findalldevs()
         self.assertEqual((default_devname in devlist), True)
     return
Exemple #3
0
 def test_nt_generic(self):
     """测试nt类操作系统下,肯定有个网口是通用设备"""
     if os.name == 'nt':
         default_devname = "\\Device\\NPF_GenericDialupAdapter"
         devlist = sendpkt.findalldevs()
         self.assertEqual((default_devname in devlist), True)
     return
Exemple #4
0
 def test_notparam(self):
     """测试对findalldevs()函数传递参数时抛出异常"""
     e = None
     try:
         devlist = sendpkt.findalldevs('faeij')
     except Exception, e:
         pass
Exemple #5
0
 def setUp(self):
     self.packet = "a" * 80
     devlist = sendpkt.findalldevs()
     if devlist:
         if os.name == "nt":
             self.device = devlist[-1]  # \\NPF\\....
         elif os.name == "posix":
             self.device = devlist[0]  # eth0
         else:
             self.device = devlist[0]
     else:
         self.device = ""
         raise OSError, "You must run in root mode"
     return
Exemple #6
0
 def setUp(self):
     self.packet = "a" * 80
     devlist = sendpkt.findalldevs()
     if devlist:
         if os.name == "nt":
             self.device = devlist[-1]  #\\NPF\\....
         elif os.name == "posix":
             self.device = devlist[0]  #eth0
         else:
             self.device = devlist[0]
     else:
         self.device = ""
         raise OSError, "You must run in root mode"
     return
Exemple #7
0
def send_msg(kwargs): 
    if type(kwargs) is not types.DictType:   #这个格式判断可以学习一下。虽然在这个程序里没什么用。
        return  
    #源ip地址,如果字典里没添,就获取真实地址 
    src_ip=inet_aton(kwargs.get('src', socket.gethostbyname(socket.gethostname())))  
    #目的ip地址  
    dst_ip=inet_aton(kwargs.get('dst'))
    #源mac地址,如果字典里没添,就获取真实mac地址
    src_mac=pack_mac(kwargs.get('src_mac',get_local_mac()))
    #目的mac地址  
    dst_mac=pack_mac(kwargs.get('dst_mac')) 
    
    host=kwargs.get('host',socket.gethostname())  
    user=kwargs.get('user')  
    msg=kwargs.get('msg')  


    #288表示发送信息
    #msg="1_lbt2_2#0#002564CA9C71#0#0#0:%s:%s:%s:288:%s" %(int(strftime('%m%d%H%M%S'))+100000000, user, host, msg)   #应用层的数据
    msg="1_lbt2_2#0#002564CA9C71#0#0#0:%s:%s:%s:209:%s" %(int(strftime('%m%d%H%M%S'))+100000000, user, host, msg)   #应用层的数据
    
    msg=msg.decode('utf-8').encode("gb2312")

    udp=dpkt.udp.UDP(dport=2425, sport=2425)  
    udp.data+=msg  	#传输层的数据
    udp.ulen=len(udp)  
      
    ip = dpkt.ip.IP(src=src_ip, dst=dst_ip, data=udp, p=dpkt.ip.IP_PROTO_UDP) 	#网络层的数据
   
    ip.len=len(ip)  #重新计算ip的长度,不然消息发送不出去  


    ether = dpkt.ethernet.Ethernet(  	#数据链路层的以太网帧
        dst = dst_mac,
        src = src_mac,  
        type = 0x0800,  
        data = ip  
    )
    device=sendpkt.findalldevs()[0]
    sendpkt.sendpacket(str(ether), device)  # 直接利用网卡。整个数据帧都是我构造的。
Exemple #8
0
def send_msg(kwargs):
    local_ip=inet_aton(kwargs['src'])
    remote_ip=inet_aton(kwargs['dst'])
    local_mac=pack_mac(kwargs['src_mac'])
    #判断remote_ip和local_ip是否在同一个网段
    remote_mac=pack_mac(kwargs['dst_mac'])\
            if trans(kwargs['src'])==trans(kwargs['dst']) else pack_mac(MASK_MAC)
    host=kwargs['host']
    user=kwargs['user']
    msg=kwargs['msg']
    
    device=sendpkt.findalldevs()[0]  
    #飞鸽监听本地的UDP 2425端口   
    udp=dpkt.udp.UDP(dport=2425,sport=2425)
    #向飞鸽发送消息命令字
    #6291458表示下线
    #6291457表示上线
    #288表示发送信息
    msg="1_lbt4_10#65664#%s#0#0#0:%s:%s:%s:288:%s" \
        %(kwargs['src_mac'].replace('-',''),int(strftime('%m%d%H%M%S'))+1000000000,user,host,msg)
    
    msg=msg.encode("gbk")
    udp.data+=msg
    udp.ulen=len(udp)
    
    ip=dpkt.ip.IP(src=local_ip,dst=remote_ip,data=udp,p=dpkt.ip.IP_PROTO_UDP)
    #重新计算ip的长度,不然消息发送不出去
    ip.len=len(ip)
    
    ether=dpkt.ethernet.Ethernet(
        dst=remote_mac,
        src=local_mac,
        type=0x0800,
        data=ip
    )
    sendpkt.sendpacket(str(ether),device)
Exemple #9
0
 def test_findalldevs(self):
     """测试获取设备列表函数"""
     devlist = sendpkt.findalldevs()
     self.assertEqual((len(devlist) >= 1), True)
     return
Exemple #10
0
 def test_findalldevs(self):
     """测试获取设备列表函数"""
     devlist = sendpkt.findalldevs()
     self.assertEqual((len(devlist) >= 1), True)
     return