2015-02-25 5 views
-1

Я использовал технологию ip aliasing, чтобы назначить несколько ips на одном nic. Я использую эти ips в сценарии python для генерации трафика. Я делаю это для моего проекта в колледже. Может ли кто-нибудь сказать мне, как я узнаю, что в настоящее время в моем скрипте используется IP-адрес для генерации трафика? Я использую CentOS 6.5Какой IP-алиас в настоящее время активен

ответ

1

Вы можете получить локальный IP и порт, используемый для сокета, делая

>>> sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
>>> sock.connect(('8.8.8.8', 53)) 
>>> sock.getsockname() 
('192.168.1.67', 36498) 
+0

жаль, что я забыл упомянуть об этом раньше, но на самом деле мой клиент не подключен к Интернету. Он подключается к одной внутренней сети, состоящей только из моего клиента и моего сервера. поэтому sock.connect не работает для меня. есть ли другой способ решить эту проблему? –

+0

здесь, пытаясь подключиться к моему собственному серверу, а затем выполнить sock.getsockname, каждый раз возвращает только ip eth0 только. хотя, когда я проверяю файл pcap, трафик генерируется всеми псевдонимами ips, т. е. из eth0: 1, eth0: 2, eth0: 3 и т. д. Есть ли другой способ определения того, какой аспект ip в настоящее время активен? –

+0

Не знаю, почему этот вопрос был закрыт ????? Найден ответ: Используется многопроцессорный процесс. Вместо потоковой передачи. Затем используйте len (psutil.pids()), чтобы узнать количество активных клиентов, так как здесь в моем случае количество активных клиентов = количество процессов –

Смежные вопросы