You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
import java.net.InetAddress; |
|
import java.net.UnknownHostException; |
|
import java.nio.ByteBuffer; |
|
|
|
import fr.free.miniupnp.libnatpmp.NatPmp; |
|
import fr.free.miniupnp.libnatpmp.NatPmpResponse; |
|
|
|
class JavaTest { |
|
public static void main(String[] args) { |
|
NatPmp natpmp = new NatPmp(); |
|
|
|
natpmp.sendPublicAddressRequest(); |
|
NatPmpResponse response = new NatPmpResponse(); |
|
|
|
int result = -1; |
|
do{ |
|
result = natpmp.readNatPmpResponseOrRetry(response); |
|
try { |
|
Thread.sleep(4000); |
|
} catch (InterruptedException e) { |
|
//fallthrough |
|
} |
|
} while (result != 0); |
|
|
|
byte[] bytes = intToByteArray(response.addr); |
|
|
|
try { |
|
InetAddress inetAddress = InetAddress.getByAddress(bytes); |
|
System.out.println("Public address is " + inetAddress); |
|
} catch (UnknownHostException e) { |
|
throw new RuntimeException(e); |
|
} |
|
} |
|
|
|
public static final byte[] intToByteArray(int value) { |
|
return new byte[] { |
|
(byte)value, |
|
(byte)(value >>> 8), |
|
(byte)(value >>> 16), |
|
(byte)(value >>> 24)}; |
|
} |
|
}
|
|
|