Advertisement
rfmonk

net_iface_status.py

Jun 26th, 2014
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.81 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # discover what interfaces are up your box
  3. # needs python-nmap
  4.  
  5.  
  6. import argparse
  7. import socket
  8. import struct
  9. import fcntl
  10. import nmap
  11. SAMPLE_PORTS = '21-23'
  12.  
  13.  
  14. def get_interface_status(ifname):
  15.     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  16.     ip_address = socket.inet_ntoa(fcntl.ioctl(
  17.         sock.fileno(),
  18.         0x8915, #SIOCGIFADDR, C socket library sockios.h
  19.         struct.pack('256s', ifname[:15])) [20:24])
  20.  
  21.     nm = nmap.PortScanner()
  22.     nm.scan(ip_address, SAMPLE_PORTS)
  23.     return nm[ip_address].state()
  24.  
  25. if __name__ == '__main__':
  26.     parser = parser.ArgumentParser(description='Python networking utils')
  27.     parser.add_argument('--ifname', action="store", dest="ifname", required=True)
  28.     given_args = parser.parse_args()
  29.     ifname = given_args.ifname
  30.     print "Interface [%s] is: %s" % (ifname, get_interface_status(ifname))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement