Нужно узнать ip адрес своего компьютера в интернете в Python

1.28K просмотра
0
0 Комментариев

В документации нашел socket.gethostbyname(socket.gethostname()). Но у меня выдает ошибку. Не работает gethostbyname, не знаю почему. Версия питона 3.2. Подскажите, из-за чего может не работать или другое решение поставленной задачи.


Добавить комментарий

5 Answers

Python Опубликовано 15.09.2019
1

Шел 2019 год), можно без проблем взять (спарсить) ip здесь и здесь

Добавить комментарий
0

Чтобы узнать свой публичный IP адрес, можно DNS запрос сделать, например на Windows:

C:\> nslookup myip.opendns.com resolver1.opendns.com

Вот несколько примеров кода как на Питоне DNS запрос можно сделать.

Достоинства DNS по сравнению с HTTP, чтобы свой внешний IP адрес узнать:

  • шансов что DNS сервис дольше жить будет больше (практика это подтверждает: достаточно на старые ответы на похожие вопросы посмотреть—за годы многие http-сервисы возвращающие IP адрес компьютера в интернете пришли и ушли)
  • DNS имеет стандартный результат (формат вывода со временем стабильный)—больше шансов ваша программа правильно продолжит результат распознавать со временем
  • DNS запрос как правило быстрее чем HTTP запрос—если это имеет значение в вашем случае.

Похожий вопрос: How can I get my external IP address in bash?

Добавить комментарий
-1

import urllib.request
import re
res = urllib.request.urlopen('http://2ip.ru/').read()
print(re.search(b'\d+\.\d+\.\d+\.\d+', res).group())

Добавить комментарий
0

>>> import http.client
>>> conn = http.client.HTTPConnection("ifconfig.me")
>>> conn.request("GET", "/ip")
>>> conn.getresponse().read()
'123.45.67.89\n'

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up

Подпишись на канал!

Новые видеоуроки, книги и полезные статьи для python программистов!