Содержание

В Java есть несколько способов проверить ping и проверку порта. Вы можете использовать системную команду ping по умолчанию, нативный метод Java InetAddress полезность, HttpURLConnection и еще немного.
В производственной или тестовой среде, если вы хотите выполнить несколько проверок портов , скажем, сотни проверок одновременно, иногда InetAddress.isReachable() метод не получает правильный ответ .
Infect в моем случае, я заметил 100% сбой при попытке подключиться к www.google.com. Есть ли у вас какие-либо вопросы ниже?
- Почему InetAddress.isReachable возвращает false, когда я могу пропинговать IP-адрес?
- Как проверить, есть ли у меня подключение к интернету?
- Примеры кода Java для java.net.InetAddress.isReachable ()
- проверка Java, если IP-адрес доступен
- Как проверить, доступна ли удаленная система?
Следуйте этому руководству, если вы хотите выполнить проверку ping с помощью HttpURLConnection.openConnection ()
В этом уроке мы рассмотрим 2 различных способа проверки Ping:
- InetAddress.isReachable (timeout) метод
- Crunchify-х
crunchifyAddressReachable(host, port, timeout)метод, который работает 100% времени
Давайте начнем:
- Создайте класс CrunchifyInetAddressIsReachable.java.
- Мы создадим 2 метода pingCheckbyInetAddressisReachable () и pingCheckbyCrunchifyisReachable (), в которых мы выполним 2 выше различных теста .
Какой метод мы используем crunchifyAddressReachable ()?
Мы используем java.net.Socket в нашей реализации. Класс Socket реализует клиентские сокеты. С помощью connect() Утилита мы получаем 100% времени правильного результата. Пожалуйста, взгляните на приведенный ниже код для более подробной информации.
CrunchifyInetAddressIsReachable.java
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
пакет crunchify. ком . учебник ;
импорт Java . Ио. IOException ;
импорт Java . нетто. InetAddress ;
импорт Java . нетто. InetSocketAddress ;
импорт Java . нетто. Гнездо ;
/ **
* @author Crunchify.com
* Проблема: иногда InetAddress.isReachable () дает ложный результат. Мы реализовали ту же проверку Reachable, используя Socket. Это работает почти в 100% случаев. Сравнение добавлено.
* Версия: 1.0
*
* /
общественности учебный класс CrunchifyInetAddressIsReachable {
статический строка хозяин знак равно www.google.com ;
общественности статический недействительным main ( Строка [ ] аргументы ) {
// проверяем пинг с помощью утилиты Java по умолчанию
pingCheckbyInetAddressisReachable ( ) ;
// проверяем пинг с помощью модифицированной утилиты Crunchify
pingCheckbyCrunchifyisReachable ( ) ;
}
частный статический недействительным pingCheckbyInetAddressisReachable ( ) {
пытаться {
InetAddress crunchifyAddr знак равно InetAddress . getByName ( host ) ;
логический достижимый знак равно crunchifyAddr . isReachable ( 2000 ) ;
если ( достижимо ) {
Система. вне. println ( InetAddress.isReachable (timeout) Result ==> Пинг успешно выполнен для хоста: + хост ) ;
} еще {
Система. вне. println ( InetAddress.isReachable (timeout) Result ==> Ошибка проверки связи для хоста: + хост ) ;
}
} ловить ( Исключение е ) {
эл . printStackTrace ( ) ;
}
}
частный статический недействительным pingCheckbyCrunchifyisReachable ( ) {
пытаться {
crunchifyAddressReachable ( хост , 80 , 2000 ) ;
Система. вне. println ( / nOverloaded isReachable (хост, порт, время ожидания) Результат ==> Пинг успешно выполнен для хоста: + хост ) ;
} ловить ( Исключение е ) {
Система. вне. println ( / nOverloaded isReachable (хост, порт, тайм-аут) Результат ==> Сбой проверки связи для хоста: + хост ) ;
}
}
/ *
* Переопределение метода InetAddress.isReachable () по умолчанию для добавления еще 2 аргументов порта и значения времени ожидания.
*
* Адрес: www.google.com
* порт: 80 или 443
* время ожидания: 2000 (в миллисекундах)
* /
частный статический логический crunchifyAddressReachable ( String адрес , ИНТ порт , ИНТ тайм-аут ) {
пытаться {
пытаться ( Сокет crunchifySocket знак равно новый Гнездо ( ) ) {
// Соединяет этот сокет с сервером с указанным значением времени ожидания.
crunchifySocket . подключиться ( новый InetSocketAddress ( адрес , порт ) , тайм-аут ) ;
}
// Возвращаем true, если соединение установлено
вернуть правда ;
} ловить ( Исключение IOException ) {
исключение. printStackTrace ( ) ;
// Возвращаем false, если соединение не установлено
вернуть ложь ;
}
}
}
|
Как только вы скопируете код в среду Eclipse , просто запустите приложение Java, чтобы увидеть результат ниже.
Консольный вывод:
|
1
2
3
|
InetAddress . isReachable ( 2000 ) Результат == > Пинг не удался для хост : www . Google. ком
Перегружен isReachable ( хост , порт , тайм-аут ) Результат == > Пинг успешен для хост : www . Google. ком
|
0.00 (0%) 0 votes







