note 93310 added to function.socket-connect
| From: | jerrywilborn at gmail dot com | Date: | Wed, 02 Sep 2009 16:40:51 +0000 |
| Subject: | note 93310 added to function.socket-connect | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-160161@lists.php.net to get a copy of this message | ||
This will print the banner from a true 'telnet' server (router, switch, host, etc).
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, '127.0.0.1', 23);
while (TRUE) {
$r = array($socket);
$c = socket_select($r, $w = NULL, $e = NULL, 5);
foreach ($r as $read_socket) {
if ($r = negotiate($read_socket)) {
var_dump($r);
exit;
}
}
}
function negotiate ($socket) {
socket_recv($socket, $buffer, 1024, 0);
for ($chr = 0; $chr < strlen($buffer); $chr++) {
if ($buffer[$chr] == chr(255)) {
$send = (isset($send) ? $send . $buffer[$chr] : $buffer[$chr]);
$chr++;
if (in_array($buffer[$chr], array(chr(251), chr(252)))) $send .= chr(254);
if (in_array($buffer[$chr], array(chr(253), chr(254)))) $send .= chr(252);
$chr++;
$send .= $buffer[$chr];
} else {
break;
}
}
if (isset($send)) socket_send($socket, $send, strlen($send), 0);
if ($chr - 1 < strlen($buffer)) return substr($buffer, $chr);
}
----
Server IP: 64.71.164.2
Probable Submitter: 70.171.71.12
----
Manual Page -- http://www.php.net/manual/en/function.socket-connect.php
Edit -- https://master.php.net/note/edit/93310
Del: integrated -- https://master.php.net/note/delete/93310/integrated
Del: useless -- https://master.php.net/note/delete/93310/useless
Del: bad code -- https://master.php.net/note/delete/93310/bad+code
Del: spam -- https://master.php.net/note/delete/93310/spam
Del: non-english -- https://master.php.net/note/delete/93310/non-english
Del: in docs -- https://master.php.net/note/delete/93310/in+docs
Del: other reasons-- https://master.php.net/note/delete/93310
Reject -- https://master.php.net/note/reject/93310
Search -- https://master.php.net/manage/user-notes.php