title: How can I get the IP address from a NIC (network interface controller) in Python?
body: <p>When an error occurs in a Python script on Unix, an email is sent.</p>
  <p>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.</p>
  <p>However, when I google I keep finding this code:</p>
  <pre><code>import socket
  socket.gethostbyname(socket.gethostname())
  </code></pre>
  <p>However, that's giving me the IP address of 127.0.1.1. When I use <code>ifconfig</code> I get this</p>
  <pre class="lang-none prettyprint-override"><code>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)
  </code></pre>
  <p>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, <a href="http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29" rel="noreferrer">Bash</a> scripts or netifaces and I'm trying to use standard libraries.</p>
  <p>So how can I get the IP address of eth0 in Python?</p>