Страницы

Поиск по вопросам

воскресенье, 5 января 2020 г.

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

#python #python_3x


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


Ответы

Ответ 1



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

Ответ 2



Чтобы узнать свой публичный 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?

Ответ 3



Распарсить, не? import bs4, requests s = requests.get('https://2ip.ua/ru/') b = bs4.BeautifulSoup(s.text, "html.parser") a = b.select(" .ipblockgradient .ip")[0].getText() print(a)

Ответ 4



import socket socket.gethostbyname(socket.getfqdn())

Ответ 5



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

Ответ 6



ip можно узнать тут и тут import requests r = requests.get('https://ramziv.com/ip').text print(r)

Комментариев нет:

Отправить комментарий