Guest User

Untitled

a guest
May 28th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. import struct
  2. import socket
  3. import binascii
  4. from twisted.names.client import getHostByName
  5. from wx._misc import GetHostName
  6.  
  7.  
  8. def sendarp(interface, atype, dip):
  9. rawsocket = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.SOCK_RAW)
  10. rawsocket.bind((interface, socket.SOCK_RAW))
  11. hwtype = struct.pack('!H', 0x0001)
  12. ptype = struct.pack('!H', 0x0806)
  13. iptype = struct.pack('!H', 0x0800)
  14. bcast_mac = struct.pack('!6B', *(0xFF,)*6)
  15. zero_mac = struct.pack('!6B', *(0x00,)*6)
  16. Hlen = struct.pack("!B", 0x0006)
  17. Plen = struct.pack("!B", 0x0004)
  18. ipstr = '192.168.1.102'
  19. ownip = socket.inet_aton(ipstr)
  20. ownmac = rawsocket.getsockname()[4]
  21. arp_request = struct.pack("!H", 0x0001)
  22. arp_reply = struct.pack("!H", 0x0002)
  23. arp_type = atype
  24. targetip = socket.inet_aton(dip)
  25. if atype == 'reply':
  26. arp_type = arp_reply
  27. else:
  28. arp_type = arp_request
  29.  
  30.  
  31. arppacket = [bcast_mac, ownmac, ptype, hwtype, iptype, Hlen, Plen, arp_type, ownmac, ownip, zero_mac, targetip ]
  32. ethpacket = [bcast_mac, ownmac, ptype]
  33. #print arppacket
  34. sarp = str(arppacket)
  35. stringeth = str(ethpacket)
  36. stringarp = stringeth.join(arppacket)
  37.  
  38.  
  39. rawsocket.send(''.join(arppacket))
  40. return True
  41.  
  42.  
  43. rawsocket = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x0806))
  44.  
  45. sendarp('wlan0', 'request', '192.168.1.142')
  46. pkt = rawsocket.recvfrom(2048)
  47. print pkt
  48.  
  49. arpheader = pkt[0][15:41]
  50. hwtype = arpheader[0][0:1]
  51. ptype = arpheader[1:3]
  52. Hlen = arpheader[3:4]
  53. Plen = arpheader[4:5]
  54. Optype = arpheader[5:7]
  55. Sendermac = arpheader[7:13]
  56. Senderip = socket.inet_ntoa(arpheader[13:17])
  57. Targetmac = arpheader[17:23]
  58. Targetip = arpheader[23:27]
  59.  
  60.  
  61. print binascii.hexlify(arpheader)
  62. print binascii.hexlify(hwtype)
  63. print ptype
  64. print binascii.hexlify(ptype)
  65. print binascii.hexlify(Hlen)
  66. print binascii.hexlify(Plen)
  67. print binascii.hexlify(Optype)
  68. print binascii.hexlify(Sendermac)
  69. print Senderip
  70. print binascii.hexlify(Targetmac)
  71. print struct.unpack("HHHH", Targetip)
Advertisement
Add Comment
Please, Sign In to add comment