Получение ip базы logofon

<?php
/**
 * Получение ip базы логофона
 * автор: Nc_Soft
 * 11.12.09
 */

//переменная содержащая время обновления базы
$GLOBALS['last_mod'] = '';

//открываем сеанс curl
$ch = curl_init('http://www.logofon.ru/xml/ips.xml');
curl_setopt($ch, CURLOPT_USERAGENT, 'snippets ip bot :)');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//функция обратного вызова, которая будет проверять заголовки
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');

//получение данных
$xml_data = curl_exec($ch);
//закрываем curl
curl_close($ch);

//функция обратного вызова, ищет Last-Modified
function curlHeaderCallback($ch, $header) {
	//чекаем Last-Modified
	$s = explode(': ', $header, 2);
	if ($s[0] == 'Last-Modified') $GLOBALS['last_mod'] = trim($s[1]);

	return strlen($header);
}

/*Имея $GLOBALS['last_mod'] в таком виде: Mon, 07 Dec 2009 21:43:14 GMT
мы можем проверять актуальность нашей базы, чтобы не обновляться лишний раз

для справки: чтобы получить timestamp надо сделать так
echo strtotime($GLOBALS['last_mod']);
*/

//допустим, надо обновиться, для этого парсим xml файл
//для примера выведу всех опсосов в табличках
//в качестве парсера юзаем правильные функции, а не регулярки!!!
$xml = simplexml_load_string($xml_data);

foreach ($xml->operator as $opsos) : ?>
	<hr />
	<table border="1">
	<tr>
	<td>ид</td>
	<td>опсос</td>
	<td>страна</td>
	<td>сокращение страны</td>
	</tr>
	
	<tr>
	<td><?=$opsos['id'];?></td>
	<td><?=$opsos['name'];?></td>
	<td><?=$opsos['country'];?></td>
	<td><?=$opsos['tld'];?></td>
	</tr>

	<?php
	//выводим диаппазоны
	foreach ($opsos->range as $range) : ?>
		<tr>
		<td colspan="2"><?=long2ip($range['ip1']);?></td>
		<td colspan="2"><?=long2ip($range['ip2']);?></td>
		</tr>
	<?php endforeach; ?>
	</table>
<?php endforeach;

/*
Как видите, все просто и удобно.
А при помощи этого сниппета можно легко импортировать
эту базу в свои проекты
*/