Как узнать IP-адрес отправителя письма?

1342036851_ip.jpgВ наше время мало кого удивишь статическим ip адресом дома, правда не везде он халявный. А платить 150 рублей за такую роскошь мне не хочется, но так как у моего провайдера есть небольшой «баг» — он дает статический адрес на халяву, но в связи с нежданчиком который приключился на днях — решил заморочиться.

А нежданчик был простой — провайдер решил сменить пул адресов. И естественно мой статический халявный адрес выпал из моего поля зрения. Решить вопрос можно многими способами: купить статик, использовать ПО для отсылки ip адреса, использовать teamviewer (но насколько знаю, после смены ip меняется и id), а можно проторчать 3 дня в PowerShell (ибо кто его знает тому легче) и получить сносный скрипт.

И так, посвящается realwhitebird и моему не желанию правильно учить мат часть 🙂

Для начала встал вопрос где взять адекватный сервер который адекватно будет показывать мой внешний ip адрес. Потратив пару часов, был найден один (рекламировать не буду) так как PowerShell стал ругаться на него — time out! Но раз оказалось все столь печально, значит надо писать свое, благо писать всего три строчки.

Адский код 🙂 обзываем его index.php кладем себе на сервер в папку, обращаемся и получаем чистый ip адрес без всякого HTML. С одной задачей справились, теперь пошло все сложней:

И так, скрипт… Скрипт получает ip адрес с нашего PHP скрипта и кладет его в файлик Ip.txt, дальше делает сравнение с прошлым ip (default.txt) если различие есть, то происходит отправка письма на почту с уведомлением о смене ip адреса.

узнать-IP-адрес-отправителя.jpg

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

К счастью, почтовые программы имеют другой механизм, позволяющий достичь этой же цели. Как на обычном, бумажном письме всегда написан адрес отправителя, так и на письме электронном будет «написан» электронный адрес отправителя, который называется IP-адрес (от англ. Internet Protocol, протокол Интернета). Узнав этот адрес, можно довольно точно определить с его помощью если не имя, то хотя бы страну и город отправителя – а это уже немало. Вот как это сделать с помощью некоторых популярных почтовых сервисов.

Узнать отправителя в Яндекс.Почта.

Если вы пользуетесь российской почтовой службой Яндекс.Почта, нажмите на письмо, IP-адрес отправителя которого вам необходимо узнать. Вы увидите ссылку «Свойства письма» сразу под электронным адресом.

Как-узнать-IP-адрес-отправителя-письма1.jpg

Нажмите на эту ссылку, и вы увидите большое количество технической информации.

Не пугайтесь, нам нужны всего несколько строк в начале этого текста. Они выглядят примерно так:

Received: from mxfront8o.mail.yandex.net ([127.0.0.1]) by mxfront8o.mail.yandex.net with LMTP id PNSqRnhn for ; Tue, 22 Dec 2015 17:07:49 +0300

  Received: from 66-220-155-135.outmail.facebook.com (66-220-155-135.outmail.facebook.com [66.220.155.135]) by mxfront8o.mail.yandex.net (nwsmtp/Yandex) with ESMTPS id Lh2tSWqOXH-7mYC3Riq; Tue, 22 Dec 2015 17:07:48 +0300 (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits))

Обратим внимание на последовательность цифр в конце четвертой строки: 66.220.155.135. Это и есть IP-адрес отправителя письма, свойства которого вы смотрите. Первый адрес в квадратных скобках (строка начинается со слова received) – это ваш адрес, при этом домен «yandex.net» будет указывать на то, что письмо получено почтовой службой Яндекса. А вот второй адрес, также с received, – это и есть адрес отправителя письма, он может быть выслан с любой почтовой службы.

Узнать отправителя в Gmail.

Если вы предпочитаете почту Gmail, то алгоритм очень похож. В самом верхнем и правом углу каждого письма вы можете видеть стрелку, обращенную влево, а рядом с ней – еще одну, направленную вниз. Если нажать на нее, вы увидите меню, где будет пункт «Показать оригинал». Нажмите на нее, и вы увидите аналогичную техническую информацию, как показано выше. Ищите аналогичную строку с IP-адресом.

Узнать-отправителя-в-Gmail.jpg

Узнать отправителя в почте Mail.ru.

И вот, наконец, как проделать эту же операцию на Mail.ru. Открыв нужное письмо, нажмите на кнопку «Ещё» в самом конце списка действий. Откроется меню, в котором нужно нажать на «Служебные заголовки». Здесь вы увидите искомую строку с IP-адресом.

Узнать-IP-адрес-отправителя-в-почте-Mail.jpg

Теперь, когда вы знаете настоящий IP-адрес отправителя письма, вы можете ввести его в специальный сервис Whois checker и получить немало ценных сведений о его обладателе.

network.png
Мой сервер подключен к ADSL линии интернета, по счастливой случайность, провайдер выдаёт прямой IP адрес, но он иногда меняется, чтобы подключаться к серваку мне нужно знать какой именно адрес присвоен. Я решил, что будет удобно если адрес,будет высылаться на электронную почту.
В примере будем использовать vixie-cron

Получение ip адреса

Для получения ip адреса мы будем использовать простой веб сервис, например http://yoip.ru (на заглавной странице этого сайта быдет написан ваш внешний ip). Далее нам нужно загрузить эту страницу, для этого воспользуемся программой wget.

сохраняем страницу под именем mail.htm

Фильтрация текста

В фильтрации я заморачиваться не стал, а просто выделил строчку в которой содержится ip адрес. Используем комманду grep.

# grep '*.*.*.*' mail.htm

Отправка по почте

Отправлять будем с помощью программы mail

# grep '*.*.*.*' mail.htm | mail -s "tema" my.po4ta@mail.ru

Добавление задания в cron

Мне нужно чтобы сообщения приходили мне каждый будний день. По этому добавляем такое задание.

# crontab -e

0 8-15 * * 1-5 wget yoip.ru -O mail.htm && grep ‘*.*.*.*‘ mail.htm | mail -s «tema» my.po4ta@mail.ru

# crontab -l

# DO NOT EDIT THIS FILE — edit the master and reinstall.

# (/tmp/crontab.XXXXgKPrvn installed on Fri Sep 19 14:26:32 2008)

# (Cron version V5.0 — $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)0 8-15 * * 1-5 wget yoip.ru -O mail.htm && grep ‘*.*.*.*‘ mail.htm | mail -s «tema» my.po4ta@mail.ru

Усё вроди. p.s. про настройку почты читайте в статье Ssmtp.

Ссылка на основную публикацию