Архивы: socket

Внешний IP адрес

Очень часто приходится работать в разных местах, поэтому не редко приходится узнавать свой внешний IP адрес с помощью всяких whatismyip.com

Очень хотелось что-то простое, быстрое, и для консоли. Подумав и погуглив, я написал совсем простой скрипт на php с использованием socket`ов

#!/usr/bin/env php

<?php

$socket = stream_socket_server(«tcp://0.0.0.0:23″, $errno, $errstr);

if (!$socket) {
die(«$errstr ($errno)\n»);
}

while ($connect = stream_socket_accept($socket, -1)) {
$ip=stream_socket_get_name($connect,true);
$ip=explode(«:»,$ip);
fwrite($connect, $ip[0]);
fclose($connect);
}

?>

Теперь сервер, при коннекте telnet клиента на стандартный 23 порт, выдает ему его же внешний IP. Просто, изящно, но тупо.

На написание (да чего уж там, основную часть я выдрал в наглую) меня вдохновила статья на хабре

http://habrahabr.ru/company/ifree/blog/209864/

Стоит отметить, что для не stream_socket, а обычных, выдается ошибка  »Transport endpoint is not connected in», которую я так и не смог побороть.