Ping Java

usando el comando ping del sistema

public String ping(){
		Runtime runtime=Runtime.getRuntime();
		String os=System.getProperty("os.name");
		if(os.equalsIgnoreCase("Linux")){
		try {
			Process process=runtime.exec("ping -c 4 "+address);
			BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
			String line,data="";
			while((line=bufferedReader.readLine())!=null)
				if(line.startsWith("--- "+address)){
					data=bufferedReader.readLine();
					break;
				}
			process.destroy();
			bufferedReader.close();
			return data.split(",")[3].trim();
		   } catch (IOException e) {
			System.err.println(e);
		   }
		}else if(os.indexOf("win")!=-1){
			try {
				Process process=runtime.exec("ping "+address);
				BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
				String line,data="";
				while((line=bufferedReader.readLine())!=null)
					if(line.startsWith("Approximate")||line.startsWith("Tiempos")){
						data=bufferedReader.readLine();
						data=data.split(",")[2].split("=")[1].trim();
						break;
					}
				process.destroy();
				bufferedReader.close();
				return data;
			      } catch (IOException e) {System.err.println(e);
			   }
		}
		return null;
	}

usando una pagina

import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;

/**
 * @author Leyer
 */

public class Ping {
 private URLConnection urlConnection;
 private String address;
 public Ping(String address){
 try {
 this.address = address;
 urlConnection=new URL("http://clez.net/net.ping?ip="+address+"&t=icmp&p=80#scan")
 .openConnection();
 } catch (MalformedURLException e) {
 e.printStackTrace();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 public String start(){
 BufferedReader bufferedReader = null;
 try {
 InputStream inputStream=urlConnection.getInputStream();
 bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
 String line=null;
 while((line=bufferedReader.readLine())!=null){
 if(line.equalsIgnoreCase("--- "+address+" ping statistics ---")){
 String ping=bufferedReader.readLine();
 return ping;
 }
 }
 } catch (IOException e) {
 e.printStackTrace();
 }finally{
 if(bufferedReader != null)
 try {
 bufferedReader.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 }
 return "-1";
 }
 public static void main(String args[]){
 System.out.println(new Ping("Direccion IP").start());
 }
 }
<pre>
Anuncios

One Comment to “Ping Java”

  1. Interesante codigo, pero no estas haciendo Ping, si no leer una pagina web especifica y que esa hace ping, pero a pesar de todo lees una pagina web cualesquiera.
    Lo mejor que podrias hacer según yo emular un ping usando UDP (ya que el ping se usa icmp)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: