Получение 127.0.1.1 вместо 192.168.1. * Ip ubuntu python - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в питоне. Я хочу получить IP-адрес системы. Я подключен в локальной сети. Когда я использую код ниже, чтобы получить IP, он показывает 127.0.1.1 вместо 192.168.1.32. Почему это не показывает LAN IP. Тогда как я могу получить свой LAN IP. Каждый урок показывает только этот путь. Я также проверил через соединение с мобильной точкой доступа. Даже если это показывает то же самое.

import socket    
hostname = socket.gethostname()    
IPAddr = socket.gethostbyname(hostname)    
print("Your Computer Name is:" + hostname)    
print("Your Computer IP Address is:" + IPAddr)    

Выход:

Your Computer Name is:smackcoders
Your Computer IP Address is:127.0.1.1

Требуемый вывод:

Your Computer Name is:smackcoders
Your Computer IP Address is:192.168.1.32

Ответы [ 3 ]

2 голосов
/ 22 марта 2019

Как я могу получить IP-адрес eth0 в Python?

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print s.getsockname()[0]
2 голосов
/ 22 марта 2019

В соответствии с указанным выше содержимым файла / etc / hosts у вас есть IP-адрес, сопоставленный с '127.0.1.1' к вашему имени хоста. Это вызывает разрешение имени, чтобы получить 127.0.1.1. Вы можете попробовать удалить / прокомментировать эту строку и перезапустить.

0 голосов
/ 22 марта 2019

Это решение работает для меня в Windows.Если вы используете Linux, вы можете попробовать эту строку кода:

IPAddr = socket.gethostbyname(socket.getfqdn())
...