fendows 发表于 2011-08-09 11:09

请教 用fsockopen打开一个telnet至路由器连接时,fwrite函数不生效的问题

本帖最后由 fendows 于 2011-08-09 11:13 编辑

代码如下
<?php
@set_time_limit(0);
$fp = fsockopen("192.168.1.1", 23, $errno, $errstr);
if(!$fp)
{
echo "$errstr ($errno)<br>\n";
}
else { while(!feof($fp)) {
$buff =fgets($fp,32);
if (strstr($buff,"Username:"))
echo fwrite($fp,"username\r\n"); //判断用户名输入界面并输入用户名,但是始终不成功,显示fwrite函数能返回正常字符数
/*省略路由器显示的输入密码界面和其他相关界面交互*/
echo $buff;
   }
}
fclose($fp);
}
?>

测试显示能判断到username:这样的界面,并且fwrite能返回正确的输入字符数,但是路由器未显示用户名正确输入。
烦请高手们指教,莫非php对界面的交互不够强大?

xinglu1983 发表于 2011-08-09 11:53

fwrite既然返回字符数就说明成功了,否则会返回false的,“路由器未显示用户名正确输入”说明后面的代码出问题,你偏偏又把后面代码省略了。。。

把fread那块检查下。
页: [1]
查看完整版本: 请教 用fsockopen打开一个telnet至路由器连接时,fwrite函数不生效的问题