2013-04-12 94 views
0

我需要幫助以檢查兩個本地端口是否在我的盒子中運行,並且如果是這種情況,請打開一個端口。檢查端口是否正在運行的腳本

例如:

DB2端口:50001 MQ端口:1414

如果兩個都打開,打開端口45用於收聽如果其中是不是,關閉腳本端口。

進出口運行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

我總是在第11行得到綁定45失敗。 – user1961382

+0

感謝rook,我必須用sudo運行命令,但是,沒有任何反應:/ – user1961382