SKART1 / GEOTRACERT

Server and client (web front) for geotracert service
Other
6 stars 0 forks source link

Более эффективный парсинг результата windows и linux #52

Closed SKART1 closed 10 years ago

SKART1 commented 10 years ago

Дано в модуле Traceroute есть функция parse(String) 1). Разделить на две функции в зависимости от типа ОС (Windows/UNIX) смотри переменную OSType 2). Реализовать более эффективный парсинг для обоих ОС. Для этого: -Просмотреть все возможные варианты ответа утилит tracert и traceroute -Реализовать получение данных. Желательно при помощи регулярных выражений

Срок сдачи - воскресенье 15.12.2013 12:00. По ознакомлению отписаться в формате: Ознакомлен, согласен/несогласен.

dm-kiselev commented 10 years ago

Имеется ввиду вскр 15.12.13 ?

SKART1 commented 10 years ago

Да

dm-kiselev commented 10 years ago

go skype, I have a mountains of questions)

dm-kiselev commented 10 years ago

Хотя нет, сформулировал. Скажи, я правильно понял ситуацию? Клиент получает некий айпи от пользователя, запускает traceroute и затем парсит каждую строку от traceroute'а, вытаскивает из неё очередной айпи и посылает его серверу. А сервер в свою очередь, получая айпи от клиента, вычисляет его геокоординаты и отправляет их клиенту, который рисует на карте баллун. Если так, то класс Traceroute, написанный Гьоко, видимо выполняется на стороне клиента.

SKART1 commented 10 years ago

Клиент это веб страничка!! Вообщем выходи в скайп

SKART1 commented 10 years ago

@dm-kiselev ты пишешь модуль. На входе у модуля строка - на выходе "массив" (коллекция) наборов хост+айпи

Класс Гьоко реализует traceroute/tracert путем вызова функции операционной системы считай через консоль/терминал

dm-kiselev commented 10 years ago

А как парсить такую строку? 9 iva-b-c2-ae5-0.yndx.net (87.250.239.115) 55.184 ms iva-p1-be1.yndx.net (87.250.239.98) 49.161 ms 49.850 ms Это в линуксе.

SKART1 commented 10 years ago

Это не две строки? что она вообще значит?

dm-kiselev commented 10 years ago

Одна строка. Просто выполнил в терминале traceroute yandex.ru и одна из строк получилась такой. Я не знаю, что она значит.

dm-kiselev commented 10 years ago

Может быть не каждый раз надо возвращать TracerouteItem? Или по одной строке возвращать несколько, как в этом случае?

SKART1 commented 10 years ago

А ты в первый раз слышишь что у домена может быть НЕСКОЛЬКО адресов? Что многие домены дублируються?!!!

Тебе надо трейсить IP адрес а не доменное имя!

dm-kiselev commented 10 years ago

Ну IP там тоже разные. Так что в итоге? Вернуть любой из них, а остальные проигнорировать?

SKART1 commented 10 years ago

Мы не трейсим ДОМЕННЫЕ АДРЕСА!!!! Мы трейсим IP

Ты разницу понимаешь?

dm-kiselev commented 10 years ago

Ну и что?

SKART1 commented 10 years ago

То что у IP всегда соединен 1 в 1, вот что.

dm-kiselev commented 10 years ago

Что ты хочешь этим сказать?

SKART1 commented 10 years ago

то что такая строка НЕ МОЖЕТ быть возвращена для IP.

Ты пинговал доменное имя.

dm-kiselev commented 10 years ago

Вот, пожалуйста:

  $ traceroute 213.180.204.11
traceroute to 213.180.204.11 (213.180.204.11), 30 hops max, 60 byte packets
 1  * * *
 2  10.199.30.201 (10.199.30.201)  20.312 ms  21.143 ms  33.000 ms
 3  192.168.15.58 (192.168.15.58)  33.985 ms  33.331 ms  34.086 ms
 4  * * *
 5  te2-2-borov-306.core.spb.tvoe.tv (194.226.100.82)  34.281 ms  41.203 ms  41.550 ms
 6  diana-spb-ix.yandex.net (194.226.100.90)  40.184 ms  20.840 ms  29.719 ms
 7  ochakov-xe-0-0-0-601.yndx.net (213.180.213.134)  18.985 ms  18.352 ms  22.054 ms
 8  * * *
 9  iva-b-c2-ae5-0.yndx.net (87.250.239.115)  41.176 ms  41.785 ms iva-p1-be1.yndx.net (87.250.239.98)  42.544 ms
10  * iva-b-c2-ae6-0.yndx.net (87.250.239.119)  39.503 ms *
11  * * *
12  * * *
13  yandex.ru (213.180.204.11)  45.290 ms  47.596 ms  48.339 ms
SKART1 commented 10 years ago

Делай как знаешь.

dm-kiselev commented 10 years ago

Задание выполнил. Сделал одну функцию, независимую от системы и языка, потому что используются регулярные выражения. Проверьте на системе с русским языком. По идее, даже если вместо кириллицы будут кракозябры, на работе это никак не отразится, потому что доменное имя и IP, написанные в любом случае латиницей, будут найдены.

SKART1 commented 10 years ago

Молодец, Дима! Мельком взглянул - вроде должно сработать Выкладываю ссылку на коммит: ce6759174b821e36d917b9669f94d44df3b95feb

Всем тестировать!