Simple Python3 Code to parse your ipaddress
I’ve been doing some side projects on my own requiring me to obtain my assigned IPv4 address. In python3 you can do this by importing socket, which I believe is a better way than how I’m doing it below, however I found that using subprocess solved the issue!
I just put this together tonight and it does exactly what I wanted it to do. Feel free to copy and use it for your own little projects, you will need to add additional logic to the parser for additional network interfaces.
#!/usr/bin/env python3 import sys import subprocess import argparse def get_net_info(interface): myaddress = subprocess.getoutput("/sbin/ifconfig %s" % interface)\ .split("\n")[1].split()[1][5:] if myaddress == "CAST": print ("Please Confirm that your Network Device is Configured") sys.exit() else: return (myaddress) def main(): #Parser Code parser = argparse.ArgumentParser() parser.add_argument('-i', '--interface', help="Select the interface you wish to use", choices=['eth0', 'wlan0'], required=True) args = parser.parse_args() # print ("%s" % args.interface) print (get_net_info("%s" % args.interface)) if __name__ == "__main__": sys.exit(main())
Heres the expected output below, in the event the device in question is NOT configured (unplugged/unplumbed), the following should output:
sfeole@sfmadmax:~/pythonscript$ ./sean3.py -i eth0
Please Confirm that your Network Device is Configured
And here is the expected output when the device is configured(plugged in and plumbed)
sfeole@sfmadmax:~/pythonscript$ ./sean3.py -i wlan0
192.168.1.44
And of course , invalid arguements…
sfeole@sfmadmax:~/pythonscript$ ./sean3.py -i www
usage: sean3.py [-h] -i {eth0,wlan0}
sean3.py: error: argument -i/–interface: invalid choice: ‘www’ (choose from ‘eth0’, ‘wlan0’)