Форум сайта python.su
0
Здравствуйте, у меня на сервере под управлением freebsd стоит апи, к которому обращаются разнообразные клиенты. Я хотел бы с помощью питона как-то следить за портом, который уже занят апи, и получать данные о подключившихся клиентах. Минимум мне нужно получить ip адресс обратившегося, а в идеале еще и url, к какому обратились.
Первым делом я подумал о сокет-сервере, но он мне не подходит, т.к. порт уже занят апи. Подскажите, пожалуйста, в какую сторону мне копать и как лучше решить поставленную задачу.
Офлайн
221
ar4i
на Линуксе есть команда lsof -i. Во фряхе у нее вроде бы синтаксис другой. Идея в том что бы через subprocess вызывать нужную цепочку команд и далее то что вам нужно с ними делать
Офлайн
0
JOHN_16, спасибо большое, этот способ мне вполне подходит!
Кому интересно, то у утилиты lsof синтаксис везде один, только на фряхе она не стоит по умолчанию, нужно ставить.
Для получения колонки NAME я использую следующий код:
import subprocess import re NAME_PATTERN = re.compile(r'TCP (.*) ') raw_data = subprocess.check_output("lsof -i tcp:80", shell=True) data = NAME_PATTERN.findall(raw_data)
Офлайн