`

Socket InetAddressExample

阅读更多
package com.mz.xx.code;

import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;

public class InetAddressExample {
    
    public static void main(String[] args) {
        
        try {
            //1.获取主机的网络接口列表
            //静态方法getNetworkInterface()返回一个列表,其中包含勒该主机每一个接口所对应的NetworkInterface类实例。
            Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
            if(interfaceList==null){
                System.out.println("--No interface found--");
            }else{
                while(interfaceList.hasMoreElements()){
                    NetworkInterface iface = interfaceList.nextElement();
                    System.out.println("interface "+iface.getName()+":");
                    Enumeration<InetAddress> addrList = iface.getInetAddresses();
                    
                    if(!addrList.hasMoreElements()){
                        System.out.println("\t(No address for this interface)");
                    }
                    while(addrList.hasMoreElements()){
                        InetAddress address = addrList.nextElement();
                        System.out.print("\tAddress"+((address instanceof Inet4Address ? "(v4)" :(address instanceof Inet6Address ? "(v6)" : "(?)"))));
                        System.out.println(": "+address.getHostAddress());
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        
        for(String host : args){
            try {
                System.out.println(host+":");
                InetAddress[] addressList = InetAddress.getAllByName(host);
                for(InetAddress address: addressList){
                    System.out.println("\t"+address.getHostName()+"/" + address.getHostAddress());
                }
                
            } catch (UnknownHostException e) {
                System.out.println("\tUnable tofind addrss for"+host);
            }
        }
    }
}



package com.mz.xx.code;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;

public class Test {
    
    /* 一:IPv4 与 IPv6 
     *    互联网地址由二进制数字组成,有两种形式,分别对应勒两个版本的标准互联网协议.
     *       IPv4: 地址长为32位   IPV4被表示为一组4个十进制数,每两个数字之间由原点隔开(如:10.1.2.3),
     *            这种表示方法叫做 点分形式.点分形式字符串中的4个数字代表勒互联网地址的4个字节,也就是
     *            说,每个数字的范围是0-255. 
     *    IPv6: 地址长为128位.IPv6地址的16个字节由几组16进制的数字表示,这些16进制数字之间由分号隔开
     *            (如:2000:fdb8:0000;0000:0001:00ab:853c:39a1)
     * 
     * 二:InetAddress类代表一个网络目标地址,t包括主机名和数字类型的地址信息。
     *       该类有两个子类,Inet4Address和Inet6Address,分别对应勒目前IP地址的两个版本.
     *    InetAddress实例是不可变得,一旦创建,每个实例始终                                                                              指向同一个地址.
     *    
     * 三:Ip地址实际上是分配给主机与网络之间的链接,而不是主机本身.NetworkInterface类提供访问主机
     *       所有接口的信息的功能.这个功能非常有用,当一个程序需要通知其他程序其IP地址时就会用到.
     *    
     */
    
    
    public static void main(String[] args) {
//        try {
//            Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
//            while(interfaceList.hasMoreElements()){
//                NetworkInterface iface =  interfaceList.nextElement();
//                System.out.println("Interface "+iface.getName()+":");
//                Enumeration<InetAddress> addrList = iface.getInetAddresses();
//                
//                while(addrList.hasMoreElements()){
//                    InetAddress address = addrList.nextElement();
//                    System.out.println(address.toString()+"\t"+address.getHostName());
//                }
//            }
//        } catch (SocketException e) {
//            e.printStackTrace();
//        }
        
        
        /**
         * host : 为服务器地址.可以是字符串(IPv6--- )、也可以是数字型地址()。
         */
        
        String host = "www.baidu.com";
        
        try {
            InetAddress[] addressList = InetAddress.getAllByName(host);
            
            for(InetAddress address : addressList){
                System.out.println("\t"+address.getHostName()+"\t"+address.getHostAddress());
            }
            
        } catch (UnknownHostException e) {
            System.out.println("\tUnable to find address for" + "192.168.1.71");
        }
    }
}
分享到:
评论

相关推荐

    HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_

    【标题】"HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_" 提供的知识点主要集中在使用C#编程语言实现基于TCP协议的Socket通信上,并且涉及到一个名为"HPSocket.Net"的库。HPSocket.Net是针对.NET...

    c#超级Socket库SuperSocket,SOCKET多线程编程

    **SuperSocket库详解** SuperSocket是一款高性能、轻量级的C# Socket服务器开发框架,它为开发者提供了构建基于TCP/IP协议的应用程序的便利工具。在.NET平台上,SuperSocket以其易于扩展和高度定制化的特性,成为了...

    SocketTool socket工具

    SocketTool是一款专为IT专业人士设计的实用工具,主要用于处理网络通信中的套接字(Socket)操作。套接字是计算机网络编程中的一个基本概念,它提供了进程间通信(IPC)和网络通信的能力,使得不同设备上的应用程序...

    SuperSocket Socket C# 通讯详细介绍

    **SuperSocket Socket C# 通讯详解** 在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET Socket服务器框架。它为开发者提供了构建自定义网络应用服务的基础,使得处理TCP连接变...

    socket详解 socket详解 socket详解 socket详解

    Socket 编程详解 在网络编程中,Socket 是一个基本概念, plays a crucial role in building network applications. 在 C# 中,Socket 编程是通过使用 System.Net.Sockets 命名空间中的类和方法来实现的。下面,...

    SuperSocket-master_Socket基于TCP、UDP

    **SuperSocket:强大的.NET Socket框架** SuperSocket是一个高度可扩展且易于使用的.NET Socket服务端开发框架,它简化了基于Socket的网络应用开发过程。SuperSocket提供了丰富的API和强大的功能,使得开发者可以...

    SocketTool(很好用的socket测试工具)

    SocketTool调试软件是一款网络TCP/UDP通信调试工具,本工具集功能强大与简单易用为一体,是无需安装的免费绿色软件。 它可以帮助网络编程人员、网络维护人员检查所开发的网络应用软硬件的通信状况。 是一款非常好用...

    基于HPSocket实现 socket 通讯 - 修正版 ( C# demo 、 C++ dll )

    在IT行业中,网络通信是至关重要的一个领域,而Socket编程是构建网络应用程序的基础。本资源“基于HPSocket实现socket通讯 - 修正版 ( C# demo 、 C++ dll )”提供了一种实用的方法,帮助开发者高效地实现跨平台的...

    SocketTool (TCP/UDP Socket 调试工具 V2.2)

    SocketTool是一款功能强大的TCP/UDP Socket调试工具,版本为V2.2,它为开发者提供了便利的网络通信测试环境。Socket编程是计算机网络编程的基础,主要用于实现不同设备间的通信。这款工具能够帮助开发者模拟Socket...

    socket.io,socket.io-client下载

    Socket.IO和Socket.IO-Client是两个非常重要的库,主要用于实现实时双向通信,尤其是在Web开发领域。它们使得JavaScript客户端(浏览器)与Node.js服务器之间能够建立WebSocket风格的连接,提供了强大的实时通信解决...

    socket池,socket

    Socket池和Socket连接池是网络编程中的重要概念,主要用于提高应用程序的性能和效率。在处理大量并发网络连接时,传统的单个Socket连接方式可能会导致系统资源的过度消耗,因此引入了Socket池技术。 Socket,全称是...

    Android安卓使用iosocket进行Socket通信简单封装优雅写代码

    在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在需要实时通信或者低延迟的场景下,如游戏、聊天应用等。`io.socket`库是Android开发者常用来实现WebSocket和TCP/IP Socket通信的一个...

    HPSocket.lib和HPSocket_D.lib和所需头文件

    HPSocket是一款强大的网络通信组件,它为程序员提供了一套高效、稳定且易于使用的网络编程接口。这个组件包括了静态库HPSocket.lib和动态库HPSocket_D.lib,以及一系列必要的头文件,使得开发者可以在自己的项目中...

    c# socket设置代理

    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 创建代理IPEndPoint IPEndPoint proxyEndpoint = new IPEndPoint(IPAddress.Parse(proxyHost), proxyPort);...

    spring集成socket服务

    1. **集成Socket服务**:在Spring中集成Socket服务,我们通常会使用`java.net.ServerSocket`类来创建服务器端的Socket,并通过`java.net.Socket`处理客户端连接。为了将Socket服务与Spring框架结合,我们可以创建一...

    matlab环境下socket通信

    在MATLAB环境中实现Socket通信是将强大的MATLAB计算能力与网络通信功能相结合的重要技术。Socket是一种网络编程接口,它允许程序之间通过网络进行双向通信。MATLAB提供了丰富的工具和函数来支持Socket通信,使得用户...

    uart_socket.zip_linux uart socket_uart socket 串口_uart socket_

    而将UART与网络socket结合,可以实现串口数据与网络数据的互换,扩大通信范围,尤其适用于远程控制和监控系统。下面我们将深入探讨这个主题。 首先,`linux_uart___socket`标签表明我们关注的是在Linux操作系统中的...

    socket test 测试工具

    Socket测试工具是网络编程中非常重要的辅助软件,主要用于检测和调试基于Socket协议的网络通信问题。Socket,也称为套接字,是应用层与传输层之间的接口,它允许应用程序通过TCP/IP协议进行数据交换。在开发网络应用...

    跨平台的socket库,windows-linux-socket

    在IT行业中,网络编程是构建分布式系统和互联网应用程序的基础,而Socket编程是网络通信的核心。本文将深入探讨“跨平台的socket库,windows-linux-socket”这一主题,旨在帮助开发者理解如何在Windows和Linux操作...

Global site tag (gtag.js) - Google Analytics