Определение номера порта TCP, с которым был связан клиент

  1. Вы можете сделать это с 1 шаблоном регулярных выражений

    pattern = re.compile('Description="(.*)" From="(.*)" Thru="(.*)" obj')
    
    for founds in re.findall(pattern=pattern, string=string):
        desc, frm, thru = founds
        print(desc)
        print(frm)
        print(thru)
    
    # ouput
    # Get Metadata
    # 2019-01-16 00:00
    # 2019-01-16 23:59
    
  2. Или вы можете сделать один и тот же шаг с разными шаблонами

    pattern_desc = re.compile('Description="(.*)" From')
    pattern_frm = re.compile('From="(.*)" Thru')
    pattern_thru = re.compile('Thru="(.*)" obj')
    
    re.findall(pattern_desc, string) 
    # output: ['Get Metadata']
    
    re.findall(pattern_frm, string)
    # output: ['2019-01-16 00:00']
    
    re.findall(pattern_thru, string)
    # output: ['2019-01-16 23:59'] 
    
    [113 ]
5
задан Jonathan Leffler 7 December 2008 в 14:57
поделиться

3 ответа

lsof -p <process id> | grep TCP
0
ответ дан 13 December 2019 в 05:43
поделиться

Используйте getsockname (), звонят для получения адреса сокета и порта после успешного соединения.

Править: корректное имя метода. Иногда я не могу скопировать простое слово от одного окна до другого!

10
ответ дан 13 December 2019 в 05:43
поделиться

Я верю тому предназначенному Darron getsockname(). Это - то, что Вы хотите, если необходимо определить номер порта на стороне клиента (вызов стороны connect()) программно. На стороне сервера (вызов стороны bind()), Вы использовали бы getpeername() получить ту же информацию от подключенного сокета.

Однако, если Вы отлаживаете и не можете изменить код, затем Вы заканчиваете тем, что использовали вещи как netstat или sockstat утилита в зависимости от операционной системы. Я не уверен, какие утилиты доступны в соответствии с Linux (или даже Ваш конкретный пакет), но я запустил бы с man sockstat. Если это установлено, можно выполнить его с любой стороны и видеть, какие конечные точки были присвоены который процессы. Объедините это с grep и можно обычно выяснять который адрес отфильтровать на в Эфирном.Удачи!

2
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: