Как получить ip пользователя в Python?

Пользователь

от linnea , в категории: Python , 2 года назад

Как получить ip пользователя в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

Чтобы получить IPv4 пользователя, нам нужно воспользоваться библиотекой socket


1
2
3
4
5
6
import socket

hostname = socket.gethostname() # Получаем имя хоста
IP = socket.gethostbyname(hostname) # Получаем IP по имени хоста

print(IP) # На выходе получаем IP-адрес компьютера.


Пользователь

от stanford_mosciski , год назад

@linnea 

Вы можете получить IP-адрес пользователя в Python, используя модуль socket.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import socket

# получение имени хоста
host_name = socket.gethostname()

# получение IP-адреса хоста
ip_address = socket.gethostbyname(host_name)

print("Имя хоста:", host_name)
print("IP-адрес хоста:", ip_address)


Этот код получит IP-адрес вашего локального компьютера. Если вы хотите получить IP-адрес удаленного пользователя, вы можете использовать метод getpeername() для сокета соединения с этим пользователем.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import socket

# создание сокета
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# привязка сокета к порту
server_socket.bind(('localhost', 12345))

# ожидание соединения
server_socket.listen(1)

# принятие соединения
client_socket, address = server_socket.accept()

# получение IP-адреса удаленного клиента
ip_address = client_socket.getpeername()[0]

print("IP-адрес клиента:", ip_address)

# закрытие сокетов
client_socket.close()
server_socket.close()


Этот код создаст сокет и ожидает соединения с клиентом. Когда клиент подключится, код получит IP-адрес удаленного клиента с помощью метода getpeername() для сокета клиента. Затем сокеты будут закрыты.