собственно за ново изобрёл велосипед
примерная структура такая
Код:
<?php
error_reporting(E_ALL);
set_time_limit(0);
ob_implicit_flush();
//ниже 3 заголовка, которые отправляет клиент майкрософтовского телнета на дир-100, до отображения приглашения
$head1=chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).chr(0x1F);
$head2=chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFD).chr(0x03);
$head3=chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x41).chr(0x4E).chr(0x53).chr(0x49).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFC).chr(0x1F);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, '196.0.0.224', '23');
socket_write($socket, $head1."\r\n", strlen($head1)); //sleep(1);
socket_write($socket, $head2."\r\n", strlen($head2)); //sleep(1);
socket_write($socket, $head3."\r\n", strlen($head3));// sleep(1);
$us="admin1\r\n";$ps="defaultpass\r\n"; /*тут с паролем вообще чертовщина была, пароль оканчивался на симовлы nn88 ну и соотв приписывал \r\n, дак пхп видимо считала что nn88\r\n какой-то спец символ и не переводила коретку.*/
socket_write($socket, $us, strlen($us));sleep(2);
socket_write($socket, $ps, strlen($ps));sleep(2);
socket_write($socket, "net\r\n", strlen("net\r\n")); sleep(2);
socket_write($socket, "show route\n", strlen("show route\n")); sleep(2);
$out = socket_read($socket, 1024);
//echo $out;
$ff=fopen('tmp1','w');fwrite($ff,$out);
sleep(1);
$f=file("tmp1");
for($i=0;$i<count($f);$i++){
//тут удаляются null символы, т.к. они мешают в дальшей обработке. ну и + заменяются все одиночные символы \r и \n на \r\n
$reg1=eregi_replace("\/".chr(0),"",$f[$i]);
$reg1=eregi_replace("( )+"," ",$reg1);
$reg1=eregi_replace("^(\r)+","",$reg1);
$reg1=eregi_replace("(\r\n)+","",$reg1);
$reg1=eregi_replace("(\n)+","\r\n",$reg1);
if(eregi("0\.0\.0\.0 192\.168\.1\.1",$reg1)==true){echo "VPN connected, inet is up\n".$reg1;}
if(eregi("0\.0\.0\.0 10\.0\.1\.2",$reg1)==true){
echo "VPN connected";
$del_route="route del 0.0.0.0 0.0.0.0 10.0.1.2 \r\n";
$add_route="route add 0.0.0.0 0.0.0.0 192.168.1.1 \r\n";
socket_write($socket, $del_route, strlen($del_route));sleep(2) ;
echo $out2 = socket_read($socket, 10240);
socket_write($socket, $add_route, strlen($add_route));
echo $out3 = socket_read($socket, 10240);
} }
socket_close($socket);
?>