# На базе определенного IP-адреса МИРЭА определите дополнительную информацию.
---
## Цель задания-проекта
---
Целью задания-проекта является исследование IP-адреса МИРЭА, узнать местоположение IP-адреса и какое количесвтоа страниц находится на сайте, использующем данный IP-адрес. А так же узнать какую информацию можно получить, просматривая содержимое веб-страницы на сайте с данным IP-адресом.
---
## Используемые методы
---
В ходе работы были использованы следующие методы:
1. Просмотр содержимого DNS с помощью команды nslookup. Через неё мы узнаем IP-адрес и сверим с другими резутатами.
2. Воспользуемся сайтом 2ip.ru для просмотра подробной информации о IP-адресе или домене.
3. Так же проверим домен через поисковую систему shodan, которая позволят искать различные типы серверов (маршрутизаторы, серверы и так далее), подключенных к сети Интернет.
4. Так же рассмотрим возможность узнать о местанахождении IP-адреса с помощью Python.
## Приступаем к работе
---
### Nslookup и 2ip.ru
---
Для начала воспользуемся командой nslookup

Рисунок 1 - узнали IP-адрес Мирэа
---
Можно было бы сделать проще, задать запрос в интеренете

---
Рисунок 2 - запрос из Google
Переходим на сайт 2ip и начинаем знакомиться с предоставленной информацией
---
Информация о сайте www.mirea.ru
Название: МИРЭА - Российский технологический университет
Описание: МИРЭА - Российский технологический университет
Ключевые слова: РТУ МИРЭА, официальный сайт РТУ МИРЭА, МИРЭА - Российский технологический университет, государственный вуз
---

Рисунок 3 - Краткое описание сайта
---
Так же замечает IP-адрес

---
Рисунок 4 - Нашли IP-адрес
Изучаем информацию о домене.
Владелец - FGBOU VO "MIREA - Rossijskij tekhnologicheskij universitet"
Регистрация 1999-12-12 15:28:02
Истекает 2022-12-31 21:00:00
---

Рисунок 5 - информация о домене
Далее переходим на вкладку "хостинг сайта". И узнаем более подробную информацию
---

Рисунок 6 - хостинг сайта
Нас интерисует местоположение IP-адреса, переходим во вкладку и видим карту с отмеченной точкой

Рисунок 7 - карта
---
Решил посмотреть как это место выглядит в панорамном режиме. И мне показалось странным что IP-адрес находится на красной площади. Далее мы проверим через другие методы и сравним
---

Рисунок 8 - панорманое фото
Список всех веб-сайтов IP-адреса 193.41.140.35. Колличесвто веб-сайтов размешенных по данному IP равен 50.
---

Рисунок 9 - краткий список веб-сайтов
При открытии большинство ссылок переносит на официальную страницу МИРЭА.
---

Рисунок 10 - сайт мирэа
Например по данному IP есть сайт opk-rectors.ru. Это сайт прдставителей ректоров вузов Москвы и МО. На данном сайте мы видим что МИРЭА выступала с конференцией 12 марта в 14:00.
---

Рисунок 11 - сайт opk-rectors.ru
Далее можно узнать подробную информацию об IP. Контактные номер телефонов, адрес располодения РТУ МИРЭА и так далее
---

Рисунок 12 - краткий пример информации об IP
Сервер работает на nginx
### Shodan
Что такое shodan это поисковая система, позволяющая пользователям искать различные типы серверов (веб-камеры, маршрутизаторы, серверы и так далее), подключённых к сети Интернет, с использованием различных фильтров. Некоторые также описывают её как поисковую систему сервисных баннеров, представляющие собой метаданные, которые сервер отправляет обратно клиенту.
---
С помощью Shodan мы проверим сайт университета Мирэа

Рисунок 13 - результат по запросу mirea.ru
Далее возьмем найденный IP-адрес и с посмотрим, какой информация есть
---

Рискнок 14 - подробная информаци об 95.165.111.244
Теперь проанализируем, что находится на данных портах.
Порта 25

Рисунок 15 - анализ порта 25
---
Посмотрим еще и другие порты

Рисунок 16 - порты 80 и 110
---
Порты 110,465,993,995 используются для почтовых сервисов

Рисунок 17 - анализ порта 110
Порт 7547 используется для веб-интерфеймса "HuawaiHomeGateway"
---

Рисунок 18 - анализ порта 7547
---
### Разработка
---
Посмотрим как можно с помощью языка программирования Python получить информацию о любом IP который нас интерисует
Для начала я решил написать программку которая будет по домену определяться IP - адрес.
---
Для начала запрашивает у пользователя доменное имя

Рисунок 19 - запрос доменного имени
---
Далее напишем блок try/except. В try будем получать IP-адрес, а в except обработаем и вернем сообщение о возможной ошибки при вводе невалидного имени

Рисунок 20 - реализация блоков try/except
---
Вот в принципе и все запускаем программу и вводим домен mirea.ru. Программа выдает домен и ip. После сравения с командой nslookup мы понимаем что ip одинаковые.

Рисунок 21 - вывод программы
---
Следовательно мы узнали как с помощью Python можно получиться ip адрес используя домен. Попробуем продолжить программу для получения более подробной информации

Рисунок 22 - дописал часть кода
---
На рисунке заметно что для начала работы нам нужно ввести IP адрес который нам интересен. Далее программа с помощью сайта начнем проверять данный Ip и выводить доступныую информацию. Так же был создан словарь с тем что нас интерисует

Рисунок 23 - вывод данных
---
Мы узнали координаты IP адреса давайте сделаем так чтоб программа выдавала карту где находится данный IЗ адрес.Для этого нужно установить библиотеку folium

Рисунок 24 - код для генирации карты по координатам
---
После ввода данных у нас появляется html файл который мы должны открыть в брузере

Рисунок 25 - файл
___
### Код
import requests
from pyfiglet import Figlet
import folium
def get_info_by_ip(ip='127.0.0.1'):
try:
response = requests.get(url=f'http://ip-api.com/json/{ip}').json()
# print(response)
data = {
'[IP]': response.get('query'),
'[Int prov]': response.get('isp'),
'[Org]': response.get('org'),
'[Country]': response.get('country'),
'[Region Name]': response.get('regionName'),
'[City]': response.get('city'),
'[ZIP]': response.get('zip'),
'[Lat]': response.get('lat'),
'[Lon]': response.get('lon'),
}
for k, v in data.items():
print(f'{k} : {v}')
area = folium.Map(location=[response.get('lat'), response.get('lon')])
area.save(f'{response.get("query")}_{response.get("city")}.html')
except requests.exceptions.ConnectionError:
print('[!] Please check your connection!')
def main():
preview_textpreview_text =Figlet(font='slant')
print(preview_textpreview_text.renderText('IP INFO'))
ip = inputinput('Please enter a target IP: ')
get_info_by_ipget_info_by_ip(ip=ip)
if __name__ == '__main__':
main()
---
Открываем файл

Рисунок 26 - карта местности
---
Проверим в яндексе по координатам которые выдала нам программа
Видим что наш IP адрес находиться на проспекте вернадского 78с4

Рисунок 27 - точка местности
---
## Результат
В результате работы научились добывать дополнительную информацию зная ip или домен сайта. Были получены и проанализированы данные и составлен отчет по проделанной работе.
---
## Рекомендации
Зная ip адрес можно практически точно установить где находиться объект которому принадлежит адрес. Узнать дополнительную информацию о данном ip, например какое количество страниц находится на сайте, использующем данный IP-адрес. И изнать какую информацию можно получиться, просматривая содержимое веб-страницы на сайте с данным IP-адресом