【java】ping IP和IP加端口

java

 

  1 /**

2 *ping" title=" ping"> ping ip

3 *

4 * @param ip

5 * @return

6 */

7 public static boolean pingIp(String ip) {

8 if (null == ip || 0 == ip.length()) {

9 return false;

10 }

11 try {

12 InetAddress.getByName(ip);

13 return true;

14 } catch (IOException e) {

15 return false;

16 }

17 }

18

19 /**

20 * ping ip加端口

21 *

22 * @param ip

23 * @param port

24 * @return

25 */

26 public static boolean pingIpAndPort(String ip, String port) {

27 if (null == ip || 0 == ip.length() || null == port || 0 == port.length() || !isInt(port) || !isRangeInt(port, 1024, 65535)) {

28 return false;

29 }

30 return pingIpAndPort(ip, Integer.parseInt(port));

31 }

32

33 /**

34 * ping ip加端口

35 *

36 * @param ip

37 * @param port

38 * @return

39 */

40 public static boolean pingIpAndPort(String ip, int port) {

41 if (null == ip || 0 == ip.length() || port < 1024 || port > 65535) {

42 return false;

43 }

44 if (!pingIp(ip)) {

45 return false;

46 }

47 Socket s = new Socket();

48 try {

49 SocketAddress add = new InetSocketAddress(ip, port);

50 s.connect(add, 3000);// 超时3秒

51 return true;

52 } catch (IOException e) {

53 return false;

54 } finally {

55 try {

56 s.close();

57 } catch (Exception e) {

58 }

59 }

60 }

61

62 /**

63 * 判断是否是整数

64 *

65 * @param str

66 * @return

67 */

68 public static boolean isInt(String str) {

69 if (!isNumeric(str)) {

70 return false;

71 }

72 // 该正则表达式可以匹配所有的数字 包括负数

73 Pattern pattern = Pattern.compile("[0-9]+");

74

75 Matcher isNum = pattern.matcher(str); // matcher是全匹配

76 if (!isNum.matches()) {

77 return false;

78 }

79 return true;

80 }

81

82 /**

83 * 匹配是否包含数字

84 *

85 * @param str

86 * @return

87 */

88 public static boolean isNumeric(String str) {

89 if (null == str || 0 == str.length()) {

90 return false;

91 }

92 if (str.endsWith(".")) {

93 return false;

94 }

95 // 该正则表达式可以匹配所有的数字 包括负数

96 Pattern pattern = Pattern.compile("-?[0-9]+\\.?[0-9]*");

97

98 Matcher isNum = pattern.matcher(str); // matcher是全匹配

99 if (!isNum.matches()) {

100 return false;

101 }

102

103 return true;

104 }

105

106 /**

107 * 是否在范围内

108 *

109 * @param str

110 * @param start

111 * @param end

112 * @return

113 */

114 public static boolean isRangeInt(String str, int start, int end) {

115 if (!isInt(str)) {

116 return false;

117 }

118 int i = Integer.parseInt(str);

119 return i > start && i < end;

120 }

 

以上是 【java】ping IP和IP加端口 的全部内容, 来源链接: utcz.com/z/393650.html

回到顶部