zoukankan      html  css  js  c++  java
  • Java网络编程(二)IP、URL和HTTP

      一、IP

      InetAddress类有一些静态工厂方法,可以连接到DNS服务器来解析主机名。

      示例1:InetAddress address = InetAddress.getByName("www.baidu.com");会建立一个与本地DNS服务器的一个连接,来查找域名和IP地址。

    package aboutIP;
    
    import java.net.*;
    
    public class GetIPByName {
    
      public static void main (String[] args) {
        try {
          InetAddress address = InetAddress.getByName("www.baidu.com");
          System.out.println(address);
        } catch (UnknownHostException ex) {
          System.out.println("Could not find www.baidu.com");
        }
      }
    }
    www.baidu.com/111.206.223.205

      示例2:查找本地主机的IP地址。

    import java.net.*;
    
    public class MyAddress {
    
      public static void main (String[] args) {
        try {
          InetAddress address = InetAddress.getLocalHost();
          System.out.println(address);
        } catch (UnknownHostException ex) {
          System.out.println("Could not find this computer's address.");
        }
      }
    }
    BigjunOba/192.168.131.1

      示例3:给定IP地址,查找主机名

    import java.net.*;
    
    public class ReverseTest {
    
      public static void main (String[] args) throws UnknownHostException {
        InetAddress ia = InetAddress.getByName("192.168.131.1");
        System.out.println(ia.getCanonicalHostName());
      }
    }
    BigjunOba

      示例4:确定IP地址版本。

    import java.net.*;
    
    public class AddressTests {
    
      public static int getVersion(InetAddress ia) {
        byte[] address = ia.getAddress();
        if (address.length == 4) return 4;
        else if (address.length == 16) return 6;
        else return -1;
      }
    }

      示例5:测试IP地址的类型

    import java.net.*;
    
    public class IPCharacteristics {
    
      public static void main(String[] args) {
      
        try {
          InetAddress address = InetAddress.getByName(args[0]);
          
          if (address.isAnyLocalAddress()) {
            System.out.println(address + " is a wildcard address.");
          }
          if (address.isLoopbackAddress()) {
            System.out.println(address + " is loopback address.");
          }
          if (address.isLinkLocalAddress()) {
            System.out.println(address + " is a link-local address.");
          } else if (address.isSiteLocalAddress()) {
            System.out.println(address + " is a site-local address.");
          } else {
            System.out.println(address + " is a global address.");
          }
          
          if (address.isMulticastAddress()) {
            if (address.isMCGlobal()) {
              System.out.println(address + " is a global multicast address.");
            } else if (address.isMCOrgLocal()) {
              System.out.println(address  + " is an organization wide multicast address.");
            } else if (address.isMCSiteLocal()) {
              System.out.println(address + " is a site wide multicast address.");
            } else if (address.isMCLinkLocal()) {
              System.out.println(address + " is a subnet wide multicast address.");
            } else if (address.isMCNodeLocal()) {
              System.out.println(address + " is an interface-local multicast address.");
            } else {
              System.out.println(address + " is an unknown multicast address type.");
            }   
          } else {
            System.out.println(address + " is a unicast address.");          
          }
        } catch (UnknownHostException ex) {
          System.err.println("Could not resolve " + args[0]);
        }   
      }
    }
    /127.0.0.1 is loopback address.
    /127.0.0.1 is a global address.
    /127.0.0.1 is a unicast address.
    /192.168.131.1 is a site-local address.
    /192.168.131.1 is a unicast address.
    www.baidu.com/111.206.223.205 is a global address.
    www.baidu.com/111.206.223.205 is a unicast address.

      示例6:测试可达性

    import java.net.*;
    
    public class IBiblioAddress {
    
      public static void main (String args[]) {
        try {
          InetAddress ibiblio = InetAddress.getByName("www.ibiblio.org");
          InetAddress helios = InetAddress.getByName("helios.ibiblio.org");
          if (ibiblio.equals(helios)) {
            System.out.println("www.ibiblio.org is the same as helios.ibiblio.org");
          } else {
            System.out.println ("www.ibiblio.org is not the same as helios.ibiblio.org");
          }
        } catch (UnknownHostException ex) {
          System.out.println("Host lookup failed.");
        }
      }
    }
    baidu.com is not the www.baidu.com

      二、URL

      三、HTTP

  • 相关阅读:
    UIGestureRecognizer在多层视图中的触发问题
    mysql出现Waiting for table metadata lock的原因及解决方案
    SQL逆向工程
    自己总结的ruby on rails 查询方法
    hdu 1536 SG函数模板题
    spring 源码分析之BeanPostProcessor
    spring bean生命周期管理--转
    java.lang.Long cannot be cast to java.lang.Integer解决办法
    Mybatis之Oracle增删查改示例--转
    Anti-If: The missing patterns--转
  • 原文地址:https://www.cnblogs.com/BigJunOba/p/9014313.html
Copyright © 2011-2022 走看看