Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #62, ФЕВРАЛЬ 2004 г.

Кто там?! Whois-клиент на php

Никита Кислицин

Xakep, номер #062, стр. 062-122-2


Вывод формы

echo "<form action=\"\" method=get>

Query: <input type=text name=query value=$query><br>

<input type=submit>";

if(isset($query)) {

$data = WhoisQuery("whois.ripe.net", $query);

echo "<pre>".$data."</pre>";

}

Обрати внимание на следующую деталь. Вывод нашей функции выделен тегами <pre> - это указывает на то, что информация должна обрабатываться как текстовая. Тут, прежде всего, имеется в виду шрифт Courier и символ '\n', переводящий строку.

Впрочем, никто не мешает написать дополнительную функцию, которая будет красиво форматировать данные. Например, выделять имена узлов красненьким, адреса - зелененьким, а имена - синеньким цветом. Но скажи, тебе оно надо? :)

Можно также добавить в систему возможность работы с несколькими Whois-серверами, более того, можно, в зависимости от зоны введенного домена, работать с различными Whois-серверами. Но я решил предоставить тебе возможность самому реализовать все эти функции, если, конечно, тебе это необходимо. А вообще, написанная программа была лишь неплохим учебным пособием. Так что, при наличии фантазии, ты можешь сделать из нее все что угодно :). Добавлю только, что все описанные в этой статье документы и программы, а также куча другой полезной информации, ты можешь найти на CD либо на сайте www.ired.ru.

Как работать с прокси-сервером?

Мне приходит много писем от читателей, причем очень часто они просят рассказать о том, как работать с HTTP-соединениями через proxy-сервер. Некоторые даже просят прислать ссылку на класс, о котором я где-то вскользь упоминал :). Надо заметить, мне не очень радостно получать такие письма - ты уже должен был сам научиться писать эту ерунду. Но все равно помогу.

Мы напишем свой класс. Поскольку с базовыми принципами ООП ты уже знаком и с сокетами работать умеешь, непонятки возникнуть не должны. Поехали. Прежде всего определим два внешних свойства нашего будущего класса: адрес прокси и порт, на котором он висит. Затем реализуем метод httpOpen, открывающий http-соединение с сервером через прокси-сервер. Собственно, сам код с подробными комментариями смотри на врезке, а мне же остается только поздравить всех особей мужского пола с праздником - берегите, друзья, отечество! Одно оно у нас такое :).

class phtt

var $proxy="";

var $proxy_p=0;

function httpOpen($host, $path, $port=80)

{

/* Если адрес прокси-сервера не определен */

if(empty($this->proxy)) {

$connect2 = $host;

$connectPost = $port;

} else {

$connect2 = $this->proxy;

$connectPort = $this->proxy_p;

}

/* Составляем полный url документа */

$url = "http://".$host.":".$port.$path;

$query = "GET $url HTTP/1.0\r\n".

"Host: $host:$port\r\n".

"User-agent: Xakep\r\n".

"\r\n";

/* Подключаемся к узлу */

Назад на стр. 062-122-1  Содержание  Вперед на стр. 062-122-3