0
点赞
收藏
分享

微信扫一扫

kotlin用ping命令判断网络是否是通的

一条咸鱼的干货 2023-11-19 阅读 52

ping通的报文:

不通的报文:

private fun ping(ip:String): Boolean {

val arr = arrayOf("sh", "-c", "ping -c 2 -W 1 $ip")//192.168.0.1

val process = Runtime.getRuntime().exec(arr)
val input = BufferedReader(InputStreamReader(process.inputStream));
var connectedCount = 0
var line: String? = null
input.use {
try {
while (input.readLine().also { line = it } != null) {
val result = getCheckResult(line!!)
connectedCount += result

LogHelper.d("MainActivity --- connectedCount = $connectedCount result = $result line = $line")
if(connectedCount > 0){
return true;
}
}
}catch (e:Exception){
e.printStackTrace()
return false
}

}

return connectedCount > 0

}


private fun getCheckResult(line: String): Int {
return if ((line.contains("ttl=") || line.contains("TTL=")) && line.contains("ms")) {
1
} else 0
}

在此 做个笔记

举报

相关推荐

0 条评论