【问题标题】:Get all Ports On Server BY PHP Code通过 PHP 代码获取服务器上的所有端口
【发布时间】:2016-01-20 23:38:00
【问题描述】:

美好的一天。我试图找到一个 php 代码,我可以从中获取服务器端的所有端口。原因是我使用共享服务器,共享服务器不允许我执行任何 cmd 命令,多么有趣和可悲的是,它会在谷歌上我没有找到任何 php 代码可以做到这一点,除了这个。

$host = 'stackoverflow.com';
$ports = array(21, 25, 80, 81, 110, 443, 3306);

foreach ($ports as $port)
{
    $connection = @fsockopen($host, $port);

    if (is_resource($connection))
    {
        echo '<h2>' . $host . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.</h2>' . "\n";

        fclose($connection);
    }

    else
    {
        echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\n";
    }
}

问题是我想打开一个套接字并接受来自 android 的套接字连接,但是无论我尝试打开什么端口,它都表示该端口正在使用中,并且通过这段代码,我无法获取所有端口,而只有这些端口

array(21, 25, 80, 81, 110, 443, 3306);

所以我的问题是有没有任何 php 代码可以返回服务器上所有端口的状态,它们是否正在使用。谢谢。

【问题讨论】:

    标签: php sockets port


    【解决方案1】:

    您想要遍历所有 65.6k 端口?

    $host = "somedomain.com";
    $port = 1;
    while ($port <= 65535){
        // Check current port # here
        // Have fun waiting for the loop to complete.
    
       $connection = @fsockopen($host, $port);
    
        if (is_resource($connection))
        {
            echo '<h2>' . $host . ':' . $port . ' ' . '(' . getservbyport($port, 'tcp') . ') is open.</h2>' . "\n";
    
            fclose($connection);
        }
    
        else
        {
            echo '<h2>' . $host . ':' . $port . ' is not responding.</h2>' . "\n";
        }
    
        $port++;
    }
    

    【讨论】:

    • 哈哈,这就是我喜欢的东西:D 不幸的是,我想要服务器上的愚蠢客户服务说他们不能给我一些端口,所以我必须自己找到它......该死的我不是吉普赛人
    • 我不确定您的需求是什么,但以大约 15 美元/月的价格投资 VPS 可能是值得的。
    • 你看到问题是使用情况,我为共享服务器支付了同样多的钱,但是 VPS 有存储限制,而共享服务器没有,我需要无限的磁盘空间来完成一个巨大的项目....这就是问题
    • 需要多少空间?
    • 嗯无限制......它基于用户。用户可以将无限图像发布到我的服务器,并且在任何情况下都不应删除图像......:(所以是无限......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多