Я пытаюсь найти способ, чтобы Python определил IP-адрес моего компьютера и мог использовать руку со странным результатом. Несколько быстрых фактов, я использую Windows 10 с подсистемой Linux (терминальное приложение Ubuntu) и работаю python 3.7.6.
Моя первая попытка была использовать разъем. то есть
import socket
hostname = socket.gethostname() # outputs a string with the hostname
ip_address = socket.gethostbyname(hostname) # outputs a string with the relevant IP address
Итак, я думал, что это прекрасно работает, пока не попробовал запустить его на другом компьютере и не заметил, что IP-адрес моего компьютера и другого компьютера совпадает. Быстрый просмотр командной строки Windows показал, что мой IPv4-адрес полностью отличается от того, что вызывалось через сокет.
Я не уверен, в чем здесь проблема, и если кто-нибудь знает, я весь слух.
Мой главный вопрос:
Как Я вызываю уникальный IPv4-адрес моего компьютера, используя Python?
РЕДАКТИРОВАТЬ:
Чтобы ответить на вопросы в комментариях:
Что я пытаюсь В конечном итоге, это доступ к файлу, который находится в разных каталогах на двух разных компьютерах. Я пишу сценарий для проекта анализа данных, над которым я работаю, и использую gitlab для отслеживания моего прогресса. Но пути файла должны быть жестко закодированы в сценарии. Чтобы не иметь дело с изменением путей при каждом переключении компьютеров, я хочу добавить несколько строк для выполнения следующих действий:
import socket
hostname = socket.gethostname() # outputs a string with the hostname
ip_address = socket.gethostbyname(hostname) # outputs a string with the relevant IP address
if ip_address == '127.0.1.1':
print('Working on desktop1:')
masked_data = 'file/path/of/desktop/1/mask.pkl'
elif ip_address == 'xxx.yyy.zzz.1':
print('Working on desktop2:')
masked_data = 'file/path/of/desktop/2/mask.pkl'
Это временно, пока мы не запустим сервер, и я знаю, что это странный обходной путь. ; P
Проблема в том, что ip_address
одинаково для обоих компьютеров при использовании сокета. Мне нужно получить уникальный адрес компьютера, на котором я работаю, и заменить IP-адреса в l oop.