[Python] How can I get the IP address from a NIC (network interface controller) in Python?

Discussão em 'Python' iniciado por Stack, Agosto 12, 2025.

  1. Stack

    Stack Membro Participativo

    When an error occurs in a Python script on Unix, an email is sent.

    I have been asked to add {Testing Environment} to the subject line of the email if the IP address is 192.168.100.37 which is the testing server. This way we can have one version of a script and a way to tell if the email is coming from messed up data on the testing server.

    However, when I google I keep finding this code:

    import socket
    socket.gethostbyname(socket.gethostname())


    However, that's giving me the IP address of 127.0.1.1. When I use ifconfig I get this

    eth0 Link encap:Ethernet HWaddr 00:1c:c4:2c:c8:3e
    inet addr:192.168.100.37 Bcast:192.168.100.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:75760697 errors:0 dropped:411180 overruns:0 frame:0
    TX packets:23166399 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:59525958247 (59.5 GB) TX bytes:10142130096 (10.1 GB)
    Interrupt:19 Memory:f0500000-f0520000

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:25573544 errors:0 dropped:0 overruns:0 frame:0
    TX packets:25573544 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:44531490070 (44.5 GB) TX bytes:44531490070 (44.5 GB)


    Firstly, I don't know where it got 127.0.1.1 from, but either way that's not what I want. When I google I keep coming to the same syntax, Bash scripts or netifaces and I'm trying to use standard libraries.

    So how can I get the IP address of eth0 in Python?

    Continue reading...

Compartilhe esta Página