无法通过telnet PHP登录服务器

I'm using a [PHP Telnet Class][1] to connect to server via telnet to send commands. It connects to the server successfully but it fails to login in..

require_once "PHPTelnet.php";

$telnet = new PHPTelnet();

// if the first argument to Connect is blank,
// PHPTelnet will connect to the local host via 127.0.0.1

$result = $telnet->Connect('172.20.66.100','username','password');

if ($result == 0) {
   $telnet->DoCommand('another command', $result);

   echo $result;
   $telnet->Disconnect();}

=============================================================================== UPDATE: My script is working, there was some conflict going on with my virtual machine......

drlh197610
drlh197610 请你发帖你的telnet吗?您的服务器未以预期格式返回数据,或者没有足够快地响应登录请求。登录的默认等待时间为1秒。你可以尝试更长时间地睡觉(第73行)
接近 6 年之前 回复
douruduan8812
douruduan8812 当我使用命令提示符telnet到我的服务器时,一切正常
接近 6 年之前 回复
dongtaigan1594
dongtaigan1594 你怎么能告诉问题是PHP连接而不是服务器?
接近 6 年之前 回复
douqi1625
douqi1625 [PHPTelnet]连接失败:登录失败int(3)
接近 6 年之前 回复
doumengxue7371
doumengxue7371 当我做一个vardumb$result时它给int(3)
接近 6 年之前 回复
drox90250557
drox90250557 1st:在$result处执行var_dump。看看Telnet给你的是什么。第二步:删除if($result==0)行并查看DoCommand是否有效。
接近 6 年之前 回复
douya7309
douya7309 我可以通过我的日志文件检查我的登录活动...
接近 6 年之前 回复
doucang2871
doucang2871 你怎么能告诉它失败?建立Telnet连接时,服务器不会给出答案。
接近 6 年之前 回复
dongzhuo2010
dongzhuo2010 什么是失败信息?
接近 6 年之前 回复

2个回答

Try this:

    $url = 'tcp://ADDRESS_HERE:PORT_HERE';
    $fp = stream_socket_client($url, $errno, $errstr, 10);
    if (!$fp) {
        echo ("$errstr ($errno)<br />
");
        exit;
    } else {
        $command = 'execute_command_line' . PHP_EOL;
        fwrite($fp, $out);

        stream_set_blocking($fp, true);

        while (!feof($fp)) {
            $output = stream_get_contents($fp);
        }

        fclose($fp);
        echo output;
    }
doufei5315
doufei5315 我在哪里放置用户名和密码?
接近 6 年之前 回复

According to the documentation in the PHPTelnet website you have the parameters to the constructor in the wrong order.

In the library's documentation there is the following example:

$result = $telnet->Connect('www.somewhere.com','login name','password');

Therefore, you should have:

$result = $telnet->Connect('172.20.66.100','username','password');

Source: PHPTelnet Documentation

EDIT

You mentioned that you get erro nº 3. In the source code, error 3 has the following description: Connect failed: Login Failed

Which points to the following URL: Information about Error 3

Which lists the possible causes as:

  • You misspelled your username or password (i.e. Your credentials are wrong)
  • Telnet service is not available for your username and password (i.e. Your user does not have permissions to access the Telnet service)
drn5375
drn5375 当我创建一个对象$ telnet = new Telnet()时,我尝试了那个库,但它似乎也有一个bug。 我有一个致命的错误,所以我搜索并找到了库的更新版本sobek.su/Projects/php/telnet.class.php我将使用我的新代码更新我的帖子。
接近 6 年之前 回复
doter1995
doter1995 也许库中有一个错误。 也许你可以试试这个:github.com/ngharo/Random-PHP-Classes/blob/master/...
接近 6 年之前 回复
douche1936
douche1936 我知道,但一切都是正确的,我从命令提示符telnet到服务器使用相同的凭据,一切正常...
接近 6 年之前 回复
dongmang3961
dongmang3961 你提到你得到的错误3.在源代码中,错误3有以下描述:连接失败:登录失败指向以下URL:geckotribe.com/php-telnet/errors/login.php哪个列出了可能的 原因如下: - 您错误拼写了您的用户名或密码(即您的凭据错误) - 您的用户名和密码无法使用Telnet服务(即您的用户无权访问Telnet服务)
接近 6 年之前 回复
dongpo4197
dongpo4197 这是一个错字,当我粘贴我的代码时,我将我的实际用户名和密码更改回“密码”“用户名”我对此感到抱歉...我的脚本仍然无效
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐