При возникновении ошибки в Python script в Unix отправляется электронное письмо.
Мне было предложено добавить {Testing Environment} в строку темы письма, если IP-адрес 192.168.100.37, который является сервером тестирования. Таким образом, мы можем иметь одну версию script и способ узнать, поступает ли почта из испорченных данных на тестовом сервере.
Однако, когда я google, я продолжаю находить этот код:
import socket
socket.gethostbyname(socket.gethostname())
Однако это дает мне IP-адрес 127.0.1.1. Когда я использую ifconfig
, я получаю это
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)
Во-первых, я не знаю, откуда он получил 127.0.1.1, но в любом случае это не то, что я хочу. Когда я google, я продолжаю приходить к тому же синтаксису, Bash сценарии или сетевые файлы, и я пытаюсь использовать стандартные библиотеки.
Итак, как я могу получить IP-адрес eth0 в Python?