java中ping多个ip_如何从Java Android中ping外部IP

这是我在其中一个项目中使用的简单ping:public static class Ping {

public String net = "NO_CONNECTION";

public String host = "";

public String ip = "";

public int dns = Integer.MAX_VALUE;

public int cnt = Integer.MAX_VALUE;}public static Ping ping(URL url, Context ctx) {

Ping r = new Ping();

if (isNetworkConnected(ctx)) {

r.net = getNetworkType(ctx);

try {

String hostAddress;

long start = System.currentTimeMillis();

hostAddress = InetAddress.getByName(url.getHost()).getHostAddress();

long dnsResolved = System.currentTimeMillis();

Socket socket = new Socket(hostAddress, url.getPort());

socket.close();

long probeFinish = System.currentTimeMillis();

r.dns = (int) (dnsResolved - start);

r.cnt = (int) (probeFinish - dnsResolved);

r.host = url.getHost();

r.ip = hostAddress;

}

catch (Exception ex) {

Timber.e("Unable to ping");

}

}

return r;}public static boolean isNetworkConnected(Context context) {

ConnectivityManager cm =

(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

return activeNetwork != null && activeNetwork.isConnectedOrConnecting();}@Nullablepublic static String getNetworkType(Context context) {

ConnectivityManager cm =

(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

if (activeNetwork != null) {

return activeNetwork.getTypeName();

}

return null;}

用法: ping(new URL("https://www.google.com:443/"), this);

结果: {"cnt":100,"dns":109,"host":"www.google.com","ip":"212.188.10.114","net":"WIFI"}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值