Unable to get the gateway IP of wlan interface using python code

srinivasan srinivasan.rns at gmail.com
Tue Nov 13 04:11:54 EST 2018


Hi Wildman,

The below snippet seems to be fine, how can I specify to get the specific
wlan0 interface gateway IP in the below code snippet?

#########################
#!/usr/bin/env python

import socket
import struct

def get_gateway_ip():
    try:
        with open("/proc/net/route", "r") as f:
            route = f.readlines()
    except IOError:
        return None
    for line in route:
        fields = line.strip().split()
        if fields[1] != "00000000" or not int(fields[3], 16) & 2:
            continue
        gateway = socket.inet_ntoa(struct.pack("<L", int(fields[2], 16)))
        break
    return gateway

print get_gateway_ip()
#########################


Many Thanks in advance,
Srini


On Tue, Nov 13, 2018 at 5:16 AM Wildman via Python-list <
python-list at python.org> wrote:

> I tried posting this already but it didn't make it.  I am
> trying again...
>
> On Tue, 13 Nov 2018 01:07:06 +0530, srinivasan wrote:
>
> > Dear Python Experts,
> >
> > *First method:*
> >
> > I need to get the IP address basically the gateway IP
>
> I am assuming your platform is Linux.  If I am incorrect then
> ignore this post.
>
> The code below reads /proc/net/route to obtain the gateway and
> then prints it.  It can be run as-is from a terminal.
>
> #########################
> #!/usr/bin/env python
>
> import socket
> import struct
>
> def get_gateway_ip():
>     try:
>         with open("/proc/net/route", "r") as f:
>             route = f.readlines()
>     except IOError:
>         return None
>     for line in route:
>         fields = line.strip().split()
>         if fields[1] != "00000000" or not int(fields[3], 16) & 2:
>             continue
>         gateway = socket.inet_ntoa(struct.pack("<L", int(fields[2], 16)))
>         break
>     return gateway
>
> print get_gateway_ip()
> #########################
>
> --
> <Wildman> GNU/Linux user #557453
> The cow died so I don't need your bull!
> --
> https://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list