ISO-коды стран

В формате CSV, только двухбуквенные, разделитель «;»:
Afghanistan;AF
Aland Islands;AX
и т.д.
Качать здесь

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/268848.html
Прокомментировать заметку можно по ссылке выше.

Определение IP и местоположения посетителя сайта 2.

Мне сегодня в почту поступило довольно закономерных вопросов от моих читателей.
Итак, отвечаю
Q: Как модифицировать скрипт, чтоб можно было проверить любой IP, который захочется задать?
A:
Очень просто. Достаточно передать скрипту нужный IP (здесь я сделаю это с помощью метода GET)Сначала модифицируем скрипт таким образом:
После
// Подключаем SxGeo.php класс
include("SxGeo.php");

Вставляем код проверки наличия соответствующей переменной GET пусть у нас она будет ip

//проверка наличия переменной
if (!isset($_GET['ip']))
{
echo 'ERROR|NOT DATA';   //не нашли - вывели сообщение об ошибке и прекратили работу
die();
}


Далее, нам потребуется проверить IP на валидность, мало ли что нам в GET сунули.
Я обычно организую вначале файла «Область функций», хотя с точки зрения PHP это необязательно, но мне так удобно.
После
//Область заголовков
header('Content-type: text/plain; charset=utf8');

Добавляю функцию проверки IP на валидность

// ---------Область функций ---------
function isip($ip_str) //проверка соответствия данных формату IP
{
$ip_pattern="#(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)#";
$ret=FALSE;
if (preg_match($ip_pattern,$ip_str))
{
$ret=TRUE;
}
return $ret;
}
// ---------Конец области функций ---------


Далее, после проверки наличия переменной, вставляем проверку на валидность IP

$ip=$_GET['ip'];
// проверка на соответствие формату
if (!isip($ip))
{
echo 'ERROR|NOT IP';   //не IP - вывели сообщение об ошибке и прекратили работу
die();
}


Далее, все как в предыдущей серии. Создаем объект SxGeo и скармливаем ему айпишник, да выводим данные в удобной форме.
Скачать можно здесь, Посмотреть как работает — здесь. Для примера в ссылку вставлен IP прокси анончика из комментария к предыдущей заметке.


тот самый анончик, точнее его прокси

реакция на попытку передать ерунду

или передать ничего

Начало Продолжение

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/268782.html
Прокомментировать заметку можно по ссылке выше.

Три неологизма

Мирный: Транк(и)-Вылезатор(ы)
И военный: Танк(и)-Вылезатор(ы) — это танк, который вылезает из-за границы соседнего государства.
Еще один военный неологизм: Танк(и)-Вылизатор(ы) — которые туда заехали, и там сгорели при нападении на территорию соседнего государства. Вылизали у Правого Сектора.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/268456.html
Прокомментировать заметку можно по ссылке выше.

Фразочка

Ну и байка о ее появлении, заодно:
Идет экзамен по странному и ненужному предмету «История Информатики и ВТ», сдает студент, который ессно, нихрена не знает:
Препод: «Ладно, ответите на вопрос, поставлю вам 3. Вопрос очень простой. Как звали первую известную в истории женщину программистку»?
Студент: «Ада, Ада точно. В ее честь язык программирования назвали…»
Препод: «Ну а фамилия»?
Студент (пыхтя минут 5 и напряженно думая): «О! Легалайз! Точно! Ада Легалайз!»
Занавес.
ЗЫ. Когда-то давно рассказал Панкарь, на моем курсе не повторялось.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/267324.html
Прокомментировать заметку можно по ссылке выше.

Определение IP и местоположения посетителя сайта.

В сети по этому поводу довольно много материала, но я расскажу как это сделал я.
Понадобилось мне написать серверный back-end к одной программе (о ней я при случае расскажу позже), определающей ip клинта и его местоположение.
Задачи определить, сидит ли клиент через неанонимный прокси не было. Если кого-то интересует этот момент, рекомендую статью [Скачать PDF]
Итак, для определения IP нам понадобится собственно IP клиента, который нам обычно любезно предоставляет сервер в переменной $_SERVER['REMOTE_ADDR'] (о других случаях где можно если нужно искать IP — смотрите вышеуказанную статью).
Теперь о б определении местоположения по IP. Для сего действия необходима база геолокации (база, где сопоставлены диапазоны IP и страны, опционально города). Такие базы бывают платные/бесплатные, автономные (можно унести себе на сайт) и не автономные (сидят у кого-нибудь на сервере и выдают информацию по запросу) и т.д.
Для моей задачи нужна была автономная и бесплатная БД. Я воспользовался SxGeo: статья о ней на Хабре, Еще одна и сайт проекта.
Там все довольно просто. Скачиваем нужные базы, скрипт, который ими управляет, ставим на сайт. В комплекте есть небольшой пример.
Чтобы не тыкать по ссылкам, я собрал все в один архив, который можно скачать здесь
А теперь скрипт. Моя задача была небольшая, потому мне хватило просто изменить скрипт примера:

// Переделано из примера [8^12]
header('Content-type: text/plain; charset=utf8');
// Подключаем SxGeo.php класс
include("SxGeo.php");
// Создаем объект
// Первый параметр - имя файла с базой (используется оригинальная бинарная база SxGeo.dat)
// Второй параметр - режим работы:
// SXGEO_FILE (работа с файлом базы, режим по умолчанию);
// SXGEO_BATCH (пакетная обработка, увеличивает скорость при обработке множества IP за раз)
// SXGEO_MEMORY (кэширование БД в памяти, еще увеличивает скорость пакетной обработки, но требует больше памяти)
$SxGeo = new SxGeo('SxGeoCity.dat');
//$SxGeo = new SxGeo('SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY); // Самый производительный режим, если нужно обработать много IP за раз

1. Выдаем нужный заголовок, подключаем основной скрипт SxGeo.php
2. $ip = $_SERVER['REMOTE_ADDR']; — получаем IP клиента, и записываем информацию в переменную $ip
3. $add_info = $SxGeo->getCityFull($ip); // Вся информация о городе
$main_info = $SxGeo->get($ip); // Краткая информация о городе или код страны (если используется база SxGeo Country)
— передаем IP объекту SxGeo, записываем всю полученную информацию в переменные $main_info и $add_info (соответственно, основную и дополнительную информацию)
3. Выводим данные в удобном для дальнейшей обработки виде:
echo "IP|".$ip."n";
echo "ISO_CODE|".$main_info['country']['iso']."n";
echo "CITY|".$main_info['city']['name_en'].'|'.
$main_info['city']['lat'].'|'.
$main_info['city']['lon']."n";
echo "COUNTRY_INFO|".$add_info['country']['name_en'].'|'.
$add_info['country']['lat'].'|'.
$add_info['country']['lon']."n";
echo "REGION_INFO|".$add_info['region']['iso'].'|'.
$add_info['region']['name_en']."n";

Посмотреть, как работает скрипт, можно на HexProject, скачать его здесь, а пакет из необходимых баз, скрипта API SxGeo и вышеуказанного скрипта здесь


У меня сегодня, например, голландский IP
Продолжение

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/267126.html
Прокомментировать заметку можно по ссылке выше.

Раз уж вспомнили про говно, а народу интересно.

Даю анонс. Ждите новой информации про Семенова Сергея Сергеевича, депутата, а также его (надеюсь просто куратора, а не любовника, г-н(аря) Гостева) потому что если Семенов все-таки не просто курируемый, то у меня он будет вызывать рвоту. Потому что вкуса, стиля нет. И неразборчив в выборе партнеров.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/266961.html
Прокомментировать заметку можно по ссылке выше.

Отрицательные персонажи для комикса про Гаджубасмена.

Когда-то в детстве такой сочиняли, но так и не сделали, а сегодня оттуда приснились два персонажа: Гос Нарко Кон, тролль и его друг, он же ездовое животное Конь Фискат — второй выглядит как поджарый жеребец с вечно стоящей от амфа …. антенной триколор-тв между ног, и постоянно выпученными глазами. А Гос Н.К. похож на толстого зеленого дезоморфинового наркомана в последней стадии пиздецомы, но он не дохнет, и сзади у него крокодилий хвост.
Постоянно ходит в паб города Енотослав, где так и представляется, на манер или Бонда, или просто чела, решившего сверкнуть своей должностью:
— Меня зовут Лена, а тебя как?
— Гос Нарко Кон, тролль. Хотя можешь звать меня просто Госом.
А когда они нажираются, то садятся на Коня Фиската (который постоянно забывает в баре кредитку и пальто), быстро через Внепространство и Вселенскую Пустоту в постель 🙂
Нарисуйте Г.Н. Кон, тролля и коня его Фиската, мож и комикс сделаем.
Можно прямо в комменты постить.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/266381.html
Прокомментировать заметку можно по ссылке выше.

Продолжая тему…

когда вдруг спросит подполковник
кого имел под буквой х
то я отвечу просто смело
конечно же це хомени

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/266220.html
Прокомментировать заметку можно по ссылке выше.

Таки дыбровый дневник

Завел все-таки, кому надо — вот он [info]blu4sezon@ljr

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/265880.html
Прокомментировать заметку можно по ссылке выше.

пирожок про Хуйло

зачем товарищ подполковник
вы мне пришили экстремизм
я президента уважаю
пишу его с заглавной х

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/265495.html
Прокомментировать заметку можно по ссылке выше.

О «тьме миров»

Выражение, которое мы с друзьями последние годы использовали как оберег (Что это зашуршало? Да будет с ним тьма миров), либо как объяснение какой-то непонятной хуйни или того, что будет после смерти.
А сегодня я понял — наша «тьма миров» синоним термина «темная энергия». С помощью темной энергии можно получить прямой доступ к пространству высшей мерности. Темная энергия — наиболее тонкая часть, отделяющая нас от прямых межмировых рейсов.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/265035.html
Прокомментировать заметку можно по ссылке выше.

Боюсь представить размер

Мастерская Зураба Церетели проектирует для Москвы «бронзового таджика»

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/264896.html
Прокомментировать заметку можно по ссылке выше.

Среднестатистический полицейский протокол 2016 г.

Л. и В. сидели у Л. дома в 00.57, пили французский коньяк из канистры, закусывали мидиями из тазика, и делали кое что заперщенное российским законом (лайкали посты в группах Правого Сектора под песни группы Машина Времени)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/264454.html
Прокомментировать заметку можно по ссылке выше.

про «Спойлер и Прокорм»

Бля, зашел на сайт просвиньина и сблеванул. Не от текста, а от дизайна — когда под заголовком и аннотацией статьи всплывает уебищная картинка на которой нихуя не прочитать текст, причем картинка имеющая отношение не только к статье, но (прошу особо заметить!) и к упоротому мозгу редактора, или хто у их там за ту хуйню ответственный, при прокручивании вообще какой-то триповый эффект с напрягающими всплывающими и мигающими картинками.
Дизайн (особенно в данном случае) прекрасно передает суть сайта. Так что дизайнера наградить! После чего отрезать руки по самую жопу.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/264304.html
Прокомментировать заметку можно по ссылке выше.

Из ненаписанных романов. Навеяно предыдущим.

Кот Шредингера обожал лежать на пятимерной подушке, попивая пивко из бутылки Клейна. А напившись он тессерактом пытается заткнуть вход в нору 4.[frac(pi())] ==4.дробнаячастьатчеслапи — мерной мыши.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/264019.html
Прокомментировать заметку можно по ссылке выше.

Хаогностическое белье начали выпускать в Пятигорске!


Прислали прикольное. Не, я понимаю вещи в 3D (они и так все 3D — ширина, высота, длина), но вот в пятимерное постельное белье я бы не рекомендовал никому, кроме принявших Хаогнозис, заворачиваться. Мало ли в Варп провалитесь…

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/263688.html
Прокомментировать заметку можно по ссылке выше.