【问题标题】:Cant get php script to ping specific port and IP无法获取 php 脚本来 ping 特定端口和 IP
【发布时间】:2012-10-03 19:12:28
【问题描述】:

我一直在尝试 ping 特定 IP 和端口以检查它是在线还是离线。如果我将端口设置为 80,它可以工作,但任何其他端口都说它不工作。我可以通过游戏、telnet 等连接到端口

//Connection Info
$ip = "*******"; //IP
$port = "2302"; //Port

//Connection
$sock = @fsockopen( $ip, $port, $num, $error, 2 ); //2 is the ping time, you can sub what you need

//Check Status

if( !$sock ){

//Closed
        echo( "It appears to be closed" );

}

if( $sock ){

//Open
        echo( "It appears to be open" );
        fclose($sock);

}

这是我得到的错误

Warning: fsockopen() [function.fsockopen]: unable to connect to *******:2302 (No connection could be made because the target machine actively refused it. )

【问题讨论】:

  • 您是否收到任何错误消息?尝试删除 @ 以显示任何错误和/或在运行 fsockopen 后检查 $num$error 变量

标签: php ping


【解决方案1】:

如果我将端口设置为 80,它可以工作,但任何其他端口都说它不工作。

这使它看起来很像防火墙问题(无论是在生成端还是在接收端)。

您确定运行此代码的服务器允许任何通信除了受限的端口范围吗? 25、81、110、443、8080端口呢?

【讨论】:

  • 我不使用的某些端口被阻止。但是我一直ping的端口范围是允许的
  • 警告:fsockopen() [function.fsockopen]: 无法连接到 69.64.50.124:2302(无法连接,因为目标机器主动拒绝。)
  • @user1658988:接收端允许吗?您尝试 ping 的服务器?
  • 我打开了端口。我可以 ping 通 IP,但是 ping 时端口不起作用
  • “目标机器主动拒绝”表示 69.64.50.124 被防火墙保护,或者进程在端口 2302 上未侦听。你可以在上面运行netstat机器?
猜你喜欢
  • 2018-05-09
  • 2014-01-30
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2014-03-01
相关资源
最近更新 更多