2013-04-12 4 views
0

Мне нужна помощь, чтобы проверить, работают ли два локальных порта в моем ящике, и если это так, откройте порт.Сценарий проверки работы портов

Для примера:

DB2 Порт: 50001 MQ Порт: 1414

Если оба открыты, Open Port 45 для прослушивания, если один из тех, кто не так, закройте порт сценария.

Im работает AIX 7,1

+0

Theres модуль для этого http://search.cpan.org/~dmuey/IO-Socket-PortState-0.03/ – tauli

ответ

0
use Socket; 

socket(HSOCK, AF_INET, SOCK_STREAM, getprotobyname('TCP')); 
$address = sockaddr_in(50001, inet_aton('0.0.0.0')); 
if (! bind(HSOCK, $address)) { 
    $address = sockaddr_in(1414, inet_aton('0.0.0.0')); 
    if (! bind(HSOCK, $address)) { 
    $address = sockaddr_in(45, inet_aton('0.0.0.0')); 
    bind(HSOCK, $address) or die "bind 45 failed"; 
    listen(HSOCK, 5) or die "listen 45 failed"; 
    . . . # accept/loop 
    } 
} 
+0

я не могу заставить его работать, к сожалению, – user1961382

+0

Я всегда получаю связывание 45 с ошибкой в ​​строке 11. – user1961382

+0

спасибо rook, мне нужно запустить команду с sudo, однако ничего не происходит:/ – user1961382