Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hu.jmk.ipv6;
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.net.InetAddress;
- import java.net.InterfaceAddress;
- import java.net.NetworkInterface;
- import java.net.SocketException;
- import java.net.UnknownHostException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Enumeration;
- import java.util.List;
- import org.xbill.DNS.*;
- public class IPv6Indicator extends Applet {
- static final long serialVersionUID = 0x1;
- public void init() {
- getLocalHostName();
- getLocalIPv4Addresses();
- getLocalIPv6Addresses();
- getRemoteIPv4Addresses( "google.hu" );
- getRemoteIPv6Addresses( "origo.hu" );
- }
- public void paint( Graphics g ) {
- setBackground( Color.BLUE );
- }
- public String getLocalHostName() {
- String localHostnameString = null;
- try {
- java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
- localHostnameString = localMachine.getHostName();
- System.out.printf( "Local machine hostname: %s\n", localHostnameString );
- } catch ( UnknownHostException e ) {
- }
- return localHostnameString;
- }
- public String[] getLocalIPv4Addresses() {
- System.out.printf( "Local IPv4 addresses:" );
- return getLocalAddresses( 4 );
- }
- public String[] getLocalIPv6Addresses() {
- System.out.printf( "Local IPv6 adresses:" );
- return getLocalAddresses( 16 );
- }
- public String[] getLocalAddresses( int segments ) {
- ArrayList<String> localAddresses = new ArrayList<String>();
- try {
- Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
- for ( NetworkInterface networkInterface : Collections.list( networkInterfaces ) ) {
- if ( networkInterface.isUp() && !networkInterface.isLoopback() ) {
- List<InterfaceAddress> interfaceAddresses = networkInterface.getInterfaceAddresses();
- for ( InterfaceAddress interfaceAddress : interfaceAddresses ) {
- InetAddress inetAddress = interfaceAddress.getAddress();
- if ( ( inetAddress.getAddress().length == segments ) && !inetAddress.isAnyLocalAddress() && !inetAddress.isLinkLocalAddress() && !inetAddress.isLoopbackAddress() && !inetAddress.isMCGlobal() && !inetAddress.isMCLinkLocal() && !inetAddress.isMCNodeLocal() && !inetAddress.isMCOrgLocal() && !inetAddress.isMCSiteLocal() && !inetAddress.isMulticastAddress() && !inetAddress.isSiteLocalAddress() ) {
- boolean isTeredo = false;
- if ( ( interfaceAddress.getNetworkPrefixLength() == 32 ) && ( inetAddress.getAddress()[0] == 32 ) && ( inetAddress.getAddress()[1] == 1 ) && ( inetAddress.getAddress()[2] == 0 ) && ( inetAddress.getAddress()[3] == 0 ) ) {
- isTeredo = true;
- }
- if ( !isTeredo ) {
- localAddresses.add( inetAddress.getHostAddress() );
- System.out.printf( " %s", inetAddress.getHostAddress() );
- }
- }
- }
- }
- }
- System.out.printf( "\n" );
- } catch ( SocketException e ) {
- System.out.printf( "\n" );
- System.out.println( e.getMessage() );
- }
- String[] localAddressesArray = new String[localAddresses.size()];
- return localAddresses.toArray( localAddressesArray );
- }
- public String[] getRemoteIPv4Addresses( String hostname ) {
- System.out.printf( "Remote IPv4 addresses:" );
- return getRemoteAddresses( hostname, Type.A );
- }
- public String[] getRemoteIPv6Addresses( String hostname ) {
- System.out.printf( "Remote IPv6 addresses:" );
- return getRemoteAddresses( hostname, Type.AAAA );
- }
- public String[] getRemoteAddresses( String hostName, int type ) {
- ArrayList<String> remoteAddresses = new ArrayList<String>();
- try {
- Lookup lookup = new Lookup( hostName, type );
- lookup.run();
- if ( lookup.getResult() == Lookup.SUCCESSFUL ) {
- for ( int i = 0; i < lookup.getAnswers().length; i++ ) {
- remoteAddresses.add( lookup.getAnswers()[i].rdataToString() );
- System.out.printf( " %s", lookup.getAnswers()[i].rdataToString() );
- }
- }
- System.out.printf( "\n" );
- } catch ( TextParseException e ) {
- System.out.printf( "\n" );
- System.out.println( e.getMessage() );
- }
- String[] remoteAddressesArray = new String[remoteAddresses.size()];
- return remoteAddresses.toArray( remoteAddressesArray );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement