2012-01-27 2 views
1

Мне нужно найти, должен ли порт Ex. порт 8080 открывается в системе Linux. Я ищу вызов API C или C++, который вернет true или false или эквивалент при предоставлении номера порта. Это нужно выполнять только локально. Я не хочу знать, есть ли процесс, прослушивающий порт, только тот, который не блокируется брандмауэром.Как узнать, открыт ли порт в системе Linux

Я хочу сделать эквивалент

if(! IsPortOpen(8080)) 
    cout << "please request IT to open port 8080 before running this tool"; 
    exit(1); 
} 
+1

Вы хотите 'netstat', но это, вероятно, лучший вопрос для суперпользователя. –

+2

http://serverfault.com/q/115063 – Meysam

ответ

6

Я предполагаю, что вы ищете открытые порты на локальном компьютере. Для этого есть много инструментов.

Один из проще в использовании и понять

lsof -i

Для удаленных машин, попробуйте nmap или еще проще и основной netcat. Например

netcat targetHost 8080

+0

Я благодарю вас за работу :) – VamsiKrishna