2009-04-16

Как узнать IP посетителя сайта

Казалось бы, нет ничего проще - ip адрес посетителя заносится Апачем в переменную $_SERVER['REMOTE_ADDR'] но есть некоторые нюансы...

Пользователь может находится за прокси-сервером а это значит что в REMOTE_ADDR будет адрес не пользователя а прокси-сервера. Если пользователь использует анонимный прокси-сервер с целью спрятать свой ip адрес то определить его реальный адрес вряд ли получится, но если пользователь использует не анонимный прокси, например экономит трафик или еще зачем, то его вполне можно вычислить по заголовкам HTTP_X_FORWARDED_FOR, но при этом нужно учитывать, что если он выходит через прокси своей организации то там может содержаться внутренний ip адрес который нам не нужен.

Все вышесказанное учитывается в вот какой несложной функции:

function get_ip(){
    $alt_ip = $_SERVER['REMOTE_ADDR'];
    if (isset($_SERVER['HTTP_CLIENT_IP'])){
        $alt_ip = $_SERVER['HTTP_CLIENT_IP'];
    }
    else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)){
        // make sure we dont pick up an internal IP defined by RFC1918
        foreach ($matches[0] AS $ip){
            if (!preg_match("#^(10|172\.16|192\.168)\.#", $ip)){
                $alt_ip = $ip;
                break;
            }
        }
    }
    else if (isset($_SERVER['HTTP_FROM'])){
        $alt_ip = $_SERVER['HTTP_FROM'];
    }
    return $alt_ip;
}

 

 

Коментариев: 3

 
  2009-04-12

Весна, шашлыки

Что можно сказать - выходные удались :)

 

Коментариев: 2

 
  2009-04-08

SPF для работы с Gmail

Как создать SPF запись для сервера, который сам посылает почту, скажем из различных PHP скриптов на сайте, сам сервер при этом не является MX майлсервером - все ящики лежат на 1and1.com, да еще некоторые из пользователей посылают почту от имени данного сервера через Gmail?

Компетентные источники утверждают, что SPF запись будет выглядеть как то так:

"v=spf1 a mx include:aspmx.googlemail.com ~all"

Хотя несколько вещей мне непонятны, а именно, при попытке посмотреть SPF для гугла, выдается странное:

> nslookup -type=ALL aspmx.googlemail.com

> "v=spf1 redirect=_spf.google.com"

т.е. меня как бы послали на _spf.google.com, но во первых в доменном имени не может быть знака _ - те кто хоть раз пробовал настроить на локальной станции виртуальный домен со значком подчеркивания в имени должны на всю жизнь запомнить и так больше никогда не делать, во вторых домена _spf.google.com не существует...

> nslookup -type=ALL _spf.googlemail.com

> *** UnKnown can't find _spf.googlemail.com: Non-existent domain

кто-нибудь может объяснить данный феномен?

 

Оставить комментарий

 
  2009-04-06

Миллионер из трущоб

Экслер выложил рецензию на фильм, по правде говоря я немножко удивлен как такой фильм мог получить шесть оскаров. Сценарий действительно не выдерживает никакой критики. Я было поначалу подумал что судя по названию фильм будет о чем то типа как черный парень упорным трудом пробил себе дорогу к светлой и богатой жизни... ан нет оказывается это реклама игры "Кто хочет стать миллионером". Кажется, что основная идея фильма - для того чтобы стать миллионером работать не нужно, учиться не нужно, достаточно придти на игру...  Возможно, среди американцев действительно эти идеи очень популярны...

Но больше всего порадовал вопрос на двадцать тысяч рупий - их главный и последний самый сложный вопрос: Атос, Портос и... как звали третьего мушкетера?

Похоже в Индии Дюма не читают...

Этот фильм мне напомнил другой фильм - один из моих самых любимых - Форест Гамп, наверное потому, что так же герой рассказывает о своей жизни начиная с самого детства, так же жизнь его носит по миру а он глядит на мир вокруг себя обалделыми неиспорченными мыслями глазами и позволяет этому всему быть не задумываясь особо о дне грядущем... так же любимая девушка у которой полно проблем... и так же главного героя как перышко в первых кадрах фильма, то возносит ветром жизненных ситуаций высоко в небо, то опускает на землю, как бы показывая, что мы в этой жизни не более чем наблюдатели, способные только наблюдать законы приводящие пейзажи в движения...

 

Коментариев: 1

 
  2009-04-06

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

Всегда срабатывает следующая методика:

  1. Прикинуть сколько времени займет работа.
  2. Полученное число умножить на два.
  3. Полученное число еще раз умножить на два.
  4. К полученному числу прибавить столько сколько планировалось первоначально - это и будет оценка времени для завершения проекта.

 

 

Коментариев: 3

 
  2009-04-03

Обажаю индийских программистов

Также обажаю дешевых низкоквалифицированных специалистов из всех других стран. Недавно один заказчик заказал кой какие работы по сайту не мне, а каким то ребятам за очень очень дешево....

Теперь у меня в два раза больше работы :) - переделать все что она там наделали...

 

вот типичный пример индийского кода:

echo "<br />Now choose the date you prefer:<br /><br />";
echo "<select name=\"course_date\" onchange=\"MM_jumpMenu('parent',this,0)\">";
echo "<option value=\"#\" selected=\"selected\">Select</option>";
$i=0;
while ($i < $num2) {
	$start=mysql_result($result2,$i,"start");
	$end=mysql_result($result2,$i,"end");
	$periodo=mysql_result($result2,$i,"periodo");
	$periodo=$_SESSION['periodo']=$periodo;
	echo "<option value='Register2.php?id=".$id_title."&start=".$start."&end=".$end."&title=".$title."&periodo=".$periodo."'>".$periodo."</option>";
	$i++;
}

Upd: оказывается код писал не индус, и не индиуска.... а индейка... из Боливии...

 

Коментариев: 1

 
  2009-03-30

Покуда есть на свете дураки...

Не перестают удивлять различные "гуру" Интернет-Маретинга.

Одни из моих клиентов прислали мне скрипт чтобы я его поставил им на сайт. Скрипт купили с некоего http://optimizeyourcart.com - хохма в том что скрипт содержит 9 (девять!) строчек PHP кода, которые можно скачать заплатив всего 97 долларов. На проверку скрипт оказался файликом который посылает через команду mail письмо владельцу сайта о том что какой либо из посетителей сайта купив что-либо на его владельца сайте, высказал желание (формально подписал аферту купли-продажи) купить еще что-нибудь еще на последующих страницах, коих предлагается показать пользователю бесчисленное множество.... Получив уведомление по емайл, владельцу сайта надлежит зайти в админку системы (сторонней, не имеющий к данному скрипту никакого отношения, те кто знает что такое 1shoppingcart меня поймут) и вручную! провести еще один заказ сняв с кредитки клиента еще бабосов (благо номер кредитки в 1shoppingcart сохраняется и показывается владельцу системы). По-моему гениально.

Еще на сайте не представлено, но в прилагаемой к скрипту доке идет гениальнейший абзац.

One cool thing we discovered is that conversion increased just by changing between offers the method in which the customer is able to click on to the next offer. For example, if you’re using multiple upsells, your customers will quickly get trained on exactly where they needed to go to click “No” to decline all your offers and precede to the download page. So the way we got around this is we simply placed the “Yes” and “No” buttons in different places throughout all of the up-sell pages.

очень фривольный перевод (тока суть):

Мы обнаружили прикольную штуку, что пипл начинает покупать гораздо больше если поменять метод при помощи которого народ переходит к следующему предложению ченить купить. Так если у вас полно страничек ченить купить, то лохи быстро научатся нажимать кнопку НЕТ - и ниче у вас не купят. Чтобы этого не случилось - на разных страничках ПОМЕСТИТЕ КНОПКИ ДА и НЕТ в РАЗНЫЕ МЕСТА!

Попросту говоря поменяйте их местами... гениально...

 

Оставить комментарий

 
  2009-03-25

Песенка о юном барабанщике

Лео опять порадовал, на этот раз выложил продолжение истории о происхождении песни про орленка, хотя меня больше порадовала пеcенка о юном барабанщике, вернее ее немецкий прототип (надеюсь, Лео простит, что я у него умыкнул mp3'шки):

W.Wallroth «Der Kleine Trompeter»
M.Cветлов «Юный бapабанщик »

нашел также и слова песни:

Der kleine Trompeter
(Маленький трубач)


Text: W. Wallroth, 1925

1. Von all unsern Kameraden
war keiner so lieb und so gut
|: wie unser kleiner Trompeter,
ein lustiges Rotgardistenblut.

2. Wir saßen so fröhlich beisammen
in einer so stürmischen Nacht;
|: mit seinen Freiheitsliedern
hat er uns so glücklich gemacht. :|

3. Da kam eine feindliche Kugel
bei einem so fröhlichen Spiel,
|: mit einem mutigen Lächeln
unser kleiner Trompeter, er fiel. :|

4. Da nahmen wir Hacke und Spaten
und gruben ihm morgens ein Grab.
|: Und die ihn am liebsten hatten,
die senkten ihn stille hinab. :|

5. Schlaf wohl, du kleiner Trompeter,
wir waren dir alle so gut.
|: Schlaf wohl du kleiner Trompeter,
du lustiges Rotgardistenblut. :|

http://ingeb.org/Lieder/vonallun.html

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

 

Оставить комментарий

 
  2009-03-21

Ай да Лео, ай да сукин сын...

Каганов, выложил очень правильные мысли... Читать всем:

Роcсия - cтрaнa беcкoнечно cыpьевая. Но не тoлькo потoмy, чтo уcпeшно тoргует peсypсaми. Cырьевое в Pocсии мышление. Бoгaтcтвo мыслится pоccиянинy как эдакие Зaкpомa Pодины, рoздaнные в oбpащениe на рyки нacеления. Что это зa зaкрома - мы не знаeм, xoтя не рaз слышaли тaкие cлoва, как «зoлoтой зaпac», «нaциoнальное доcтояние», a мнoгие дажe пoмнят злопoлyчные вayчeры, кoгдa доcтoяниe взвеcили, измeрили, и paздали на pyки. Пoтом онo, прaвдa, всё кyда-то делocь, навeрное yкpали. Нo мы помним, что оно былo. Тo же и с дeньгaми: нa всю Рoсcию дeнег напeчатанo рoвнo cто вагoнoв, и еcли у кого-тo cкопилоcь дeнег бoльше, знaчит, y oстальныx - мeньше. Так мы пpедcтавляeм ceбе эконoмикy, верно?

Поэтому каждый pоcсиянин точно знаeт: богaтство Poссии eсть поcтoянная величина. И если чтo-тo вывозят за рубеж (лec, cкажем) - знaчит, Рoсcию pазoряют. Ecли что-то ввозят (напримep, китайскиe тeлевизoры) - знaчит, тoже pазopяют. Обменяли нaш лес нa чyжие телевизoры. Bсе, что происxoдит внутри Росcии, мы тoжe рассмaтpивaем имeнно с этoй тoчки зрения. Ecли кто-тo бoгатый, тo oн бoгатый пoтoмy, что cлишком многo взял cебe, а дpугим из-зa нeгo не хвaтает.

 

Коментариев: 2

 
  2009-03-20

Прелоадер-Генератор

Bomfunk выложил сабж а я его немного отрихтовал - так стало гораздо симпатичнее :)

 

Коментариев: 6