Esempio n. 1
0
def test_eth_init_with_data():
    # initialize with a data string, test that it gets unpacked
    import arp
    eth1 = Ethernet(
        dst='PQRSTU', src='ABCDEF', type=ETH_TYPE_ARP,
        data='\x00\x01\x08\x00\x06\x04\x00\x01123456abcd7890abwxyz')
    assert isinstance(eth1.data, arp.ARP)

    # now initialize with a class, test packing
    eth2 = Ethernet(
        dst='PQRSTU', src='ABCDEF',
        data=arp.ARP(sha='123456', spa='abcd', tha='7890ab', tpa='wxyz'))
    assert str(eth1) == str(eth2)
    assert len(eth1) == len(eth2)
Esempio n. 2
0
 def __init__(self):
     self.__arp = arp.ARP()
     self.__oui = oui.OUI()
Esempio n. 3
0
def main():
	op = input('¿Iniciar ciclo de captura? (S/N)')
	
	if (op == 'S'):
		conn = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(3))

		while (op == 'S'):
			rawData, addr = conn.recvfrom(65535)
			eth = ethernet.Ethernet(rawData)
			print ('Ethernet Frame:')	
			print(eth.getInfo())

			if (getattr(eth, 'type') == 8):
				'Is IPv4'
				ipv4Packet = ipv4.IPv4( getattr(eth, 'ethPayload') )
				print ('IPv4 Datagram:')
				print (ipv4Packet.getInfo())

				if (getattr(ipv4Packet, 'protocol') == 1):
					'Is ICMPv4'
					icmpv4Packet = icmpv4.ICMPv4( getattr(ipv4Packet, 'ipv4Payload') )
					print('ICMPv4 Packet:')
					print(icmpv4Packet.getInfo())

				elif (getattr(ipv4Packet, 'protocol') == 6):
					'Is TCP'
					tcpSegment = tcp.TCP( getattr(ipv4Packet, 'ipv4Payload') )
					print ('TCP Segment:')
					print (tcpSegment.getInfo())

				elif (getattr(ipv4Packet, 'protocol') == 17):
					'Is UDP'
					udpSegment = udp.UDP( getattr(ipv4Packet, 'ipv4Payload') )
					print ('UDP Segment:')
					print (udpSegment.getInfo())

			elif (getattr(eth, 'type') == 1544):
				'Is ARP'
				arpPacket = arp.ARP( getattr(eth, 'ethPayload') )
				print ('ARP Message:')
				print (arpPacket.getInfo())

			elif (getattr(eth, 'type') == 56710):
				'Is IPv6'
				ipv6Packet = ipv6.IPv6( getattr(eth, 'ethPayload') )
				print('IPv6 Packet:')
				print(ipv6Packet.getInfo())

				if (getattr(ipv6Packet, 'nextHeader') == 58):
					'Is ICMPv6'
					icmpv6Packet = icmpv6.ICMPv6( getattr(ipv6Packet, 'ipv6Payload') )
					print('ICMPv6 Packet:')
					print(icmpv6Packet.getInfo())

				elif (getattr(ipv6Packet, 'nextHeader') == 6):
					'Is TCP'
					tcpSegment = tcp.TCP( getattr(ipv6Packet, 'ipv6Payload') )
					print ('TCP Segment:')
					print (tcpSegment.getInfo())

				elif (getattr(ipv6Packet, 'nextHeader') == 17):
					'Is UDP'
					udpSegment = udp.UDP( getattr(ipv6Packet, 'ipv6Payload') )
					print ('UDP Segment:')
					print (udpSegment.getInfo())