【问题标题】:Script to check if Ports are running检查端口是否正在运行的脚本
【发布时间】:2013-04-05 05:55:35
【问题描述】:

我需要帮助来检查我的盒子中是否有两个本地端口正在运行,如果是,请打开一个端口。

例如:

DB2 端口:50001 MQ 端口:1414

如果两者都打开,则打开端口 45 进行侦听,如果其中一个未打开,则关闭脚本端口。

我正在运行 AIX 7.1

【问题讨论】:

标签: perl aix


【解决方案1】:
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
  }
}

【讨论】:

  • 我总是在第 11 行绑定 45 失败。
  • 感谢 rook,我必须使用 sudo 运行命令,但是,什么也没有发生:/
  • @user1961382 perl 中的这段代码,如果 50001 和 1414 端口在 localhost 上处于活动状态,则开始侦听 45 TCP(本地)端口,这是您想要的吗? :)
猜你喜欢
  • 2019-03-10
  • 2010-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
相关资源
最近更新 更多