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

srinivasan srinivasan.rns at gmail.com
Tue Nov 13 09:47:40 EST 2018


As am a beginner with the python Syntax, I was able to parse the gateway IP
as below, Please do let me know if anyone forsee any issues in the below?:

    def get_gateway_ip(self):
        """
            Get the Gateway IP address of the AP.

            :return: Gateway IP.
        """

        cmd = '/sbin/ifconfig wlp1s0 | grep "inet addr" | cut -d: -f2 | cut
-d" " -f1'
        f = os.popen(cmd)
        ip_address = f.read().strip()

        list_ = ip_address.split('.')
        assert len(list_) == 4
        list_[3] = '1'

        return '.'.join(list_)

With the above return value I was able to pass the gateway IP to my robot
framework, and process further

Many Thanks in advance,
Srini



On Tue, Nov 13, 2018 at 10:11 AM srinivasan <srinivasan.rns at gmail.com>
wrote:

> 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