Packet sniffer com jpcap

Boa noite, estou tentando montar um packet sniffer utilizando a extensão jpcap.
Uso o Win 7 64 bits. Antes de desenvolver o meu projeto, estou tentando fazer o sniffer (um script simples, para teste) funcionar. Em tese, funciona, mas apenas em rede local.

Meu código para identificar as redes:

import jpcap.*;
import jpcap.packet.Packet;
import jpcap.PacketReceiver;
import java.io.IOException;

class test
{	
	public static void main(String[] args) throws java.io.IOException
	{
		//Obtain the list of network interfaces
		NetworkInterface[] devices = JpcapCaptor.getDeviceList();

		//for each network interface
		for (int i = 0; i < devices.length; i++) {
		  //print out its name and description
		  System.out.println(i+": "+devices[i].name + "(" + devices[i].description+")");

		  //print out its datalink name and description
		  System.out.println(" datalink: "+devices[i].datalink_name + "(" + devices[i].datalink_description+")");

		  //print out its MAC address
		  System.out.print(" MAC address:");
		  for (byte b : devices[i].mac_address)
		    System.out.print(Integer.toHexString(b&0xff) + ":");
		  System.out.println();

		  //print out its IP address, subnet mask and broadcast address
		  for (NetworkInterfaceAddress a : devices[i].addresses)
		    System.out.println(" address:"+a.address + " " + a.subnet + " "+ a.broadcast);
		}
	}
}

E o retorno dele quando executado:

0: \Device\NPF_{37ADC73E-678C-47E8-A6F2-7740A5592324}()
 datalink: EN10MB(Ethernet)
 MAC address:0:18:f3:b6:b9:b9:
 address:/fe80:0:0:0:4829:4ef8:b95d:2a7d null null
 address:/192.168.0.103 /255.255.255.0 /255.255.255.255

Na última linha está o IP que ele sniffa: 192.168.0.103, LAN.
Há outros 2 retornos com IPs 0.0.0.0.

O código acima apenas imprime as redes que o código pra sniffar identificaria.

Como faço pra que ele identifique o meu IP WAN, pois deste modo, com o LAN, não há identificação de nenhuma packet pelo jpcap.

Meu código pra testar o sniff:

[code]import jpcap.*;
import jpcap.packet.Packet;
import jpcap.PacketReceiver;
import java.io.IOException;

class test implements PacketReceiver
{
public void receivePacket(Packet packet) {
System.out.println(packet);
}

public static void main(String[] args) throws java.io.IOException
{
	NetworkInterface[] lists = JpcapCaptor.getDeviceList();
	System.out.println("\n\t\t***My Simple Network Sniffer***\n");
	System.out.println("Found following devices:");
	for(NetworkInterface s: lists)
	{
		System.out.println("Name: " + s.name +" Description: " + s.description);		
	}		
	JpcapCaptor captor = JpcapCaptor.openDevice(JpcapCaptor.getDeviceList()[1],65535,false,20);
	captor.loopPacket(-1,new test());	
}

}[/code]

Obrigado. :wink:

Perguntinha.
Vc quer um sniffer para que?

Estou montando um emulador pra um MMO e quero montar um sniffer que capture as packets enviadas pelo MMO para o emulador e vice-versa e já decodifique-as (além de algumas funções de manuseio que não tem de fato a ver com a captura).