SKART1 / GEOTRACERT

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

tracert #30

Closed SKART1 closed 10 years ago

SKART1 commented 11 years ago

1). Понять как из джавы можно вызвать tracert.

2). Создать клаcc имеющий следующий интерфей: вход1 - строка интересующего ip вход2(?) - некие наборы параметров(посмотреть какие есть параметры у стандартного tacert) выход - контйенер (на свое усмотрение) с информацией о хопах функции (внешние) - запустить трассировку

Пожалуйста продумай над тем что делать в случае ошибки и "зависания"

SKART1 commented 11 years ago

@maroki задачу видел? задание понятно?

maroki commented 11 years ago

видел сейчас. понятно все!

SKART1 commented 11 years ago

@maroki как успехи?

maroki commented 10 years ago

Сделал. Протестуйте!!!

dm-kiselev commented 10 years ago

Протестую!!!

mendrew commented 10 years ago

@maroki

Тестирую твой код. В win7 соответственно заменил tracerote на tracert. Ввожу это:


Traceroute goko = new Traceroute();
ArrayList<TracerouteItem> resIp;
resIp = goko.traceroute("google.com");

В итоге получаю ошибку в методе parse в строчке: hostname = line.substring(32, indexOf - 1); Я посмотрел что в отладчике. Переменная line имеет значение

����஢�� ������� � google.com [5.17.192.107]

Это понятно, потому что у меня вывод tracert на русском. Но в итоге ошибка заключается в неправильном вызове метода .substring Потому что переменная indexOf равна 28, что меньше 32.

Текст ошибки:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -4

at java.lang.String.substring(String.java:1911)

at iptogeo.Traceroute.parse(Traceroute.java:115)

at iptogeo.Traceroute.traceroute(Traceroute.java:80)

at iptogeo.IpToGeo.main(IpToGeo.java:31)

mendrew commented 10 years ago

На Линукс у всех работает?

SKART1 commented 10 years ago

@GimAndMed выйди в скайп пожалуйста

dm-kiselev commented 10 years ago

Могу проверить сейчас на линуксе, какая ветка?

SKART1 commented 10 years ago

Вроде Dev. Но пусть @GimAndMed уточнит

mendrew commented 10 years ago

Да, Dev.

dm-kiselev commented 10 years ago

Это клиент, да?

mendrew commented 10 years ago

Нет, сервер. Файлы:

dm-kiselev commented 10 years ago

Ну запускается без ошибок, этого достаточно?

SKART1 commented 10 years ago

Нет конечно. Запускать надо примерно такой код:

  Traceroute TracerouteMy=new Traceroute();
   TracerouteMy.getTracerouteCommand(ip);
   TracerouteMy.traceroute(ip);
SKART1 commented 10 years ago

Тут очень большая проблема с языком системы - т.к. русский он возвращет кракозябрами

А парсинг строки базируется на "буковках"

dm-kiselev commented 10 years ago

@321SKART123 куда вставлять этот код?

SKART1 commented 10 years ago

В main функцию. Запуск всех серверов закомментируй

dm-kiselev commented 10 years ago

Я впервые вижу этот код. Что именно там запуск всех серверов?

SKART1 commented 10 years ago

Все вызовы в главной функции

dm-kiselev commented 10 years ago

Просто скажи, какие строки закомментировать и в какую строку вставить твой код.

SKART1 commented 10 years ago

Блин, Дима ты вообще программировал когда-нибудь?!! ВСЁ в функции main. Вместо этого поставить код что я скинул

dm-kiselev commented 10 years ago

Надо было сразу так сказать)

dm-kiselev commented 10 years ago

Выполняется, но при этом на каждую строчку, полученную от traceroute, выдаёт подобное сообщение:

java.net.UnknownHostException: .143.101)  38.599 ms  41.736 ms  38.112 ms: System error
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
at java.net.InetAddress.getAllByName0(InetAddress.java:1239)
at java.net.InetAddress.getAllByName(InetAddress.java:1155)
at java.net.InetAddress.getAllByName(InetAddress.java:1091)
at java.net.InetAddress.getByName(InetAddress.java:1041)
at com.github.skart123.geotracert.geotracertserver.TracerouteItem.<init>(TracerouteItem.java:29)
at com.github.skart123.geotracert.geotracertserver.Traceroute.parse(Traceroute.java:118)
at com.github.skart123.geotracert.geotracertserver.Traceroute.traceroute(Traceroute.java:80)
at com.github.skart123.geotracert.geotracertserver.App.main(App.java:54)
SKART1 commented 10 years ago

Так ребята пока забейте на тестирования - возвращайтесь к своим задачам. я этим займусь! У меня есть альтернативное решение

SKART1 commented 10 years ago

Кодировку пофиксил в #51

Парсинг действительно реализован отвратительно. Приедться исправлять в #52