Java网络编程从入门到精通(8):用getAddress方法获得IP地址

简介:
getAddress 方法和 getHostAddress 类似,它们的唯一区别是 getHostAddress 方法返回的是字符串形式的 IP 地址,而 getAddress 方法返回的是 byte 数组形式的 IP 地址。 getAddress 方法的定义如下:
public   byte [] getAddress()
     这个方法返回的 byte 数组是有符号的。在 Java byte 类型的取值范围是 -128 127 。如果返回的 IP 地址的某个字节是大于 127 的整数,在 byte 数组中就是负数。由于 Java 中没有无符号 byte 类型,因此,要想显示正常的 IP 地址,必须使用 int long 类型。下面代码 演示了如何利用 getAddress 返回 IP 地址,以及如何将 IP 地址转换成正整数形式。
package  mynet;

import  java.net. * ;

public   class  MyIP
{
    
public   static   void  main(String[] args)  throws  Exception
    {
        InetAddress address 
=  InetAddress.getByName( " www.csdn.net " );
        
byte  ip[]  =  address.getAddress();
        
for  ( byte  ipSegment : ip)
            System.out.print(ipSegment 
+   "   " );
        System.out.println(
"" );
        
for  ( byte  ipSegment : ip)
        {
            
int  newIPSegment  =  (ipSegment  <   0 ?   256   +  ipSegment : ipSegment;
            System.out.print(newIPSegment 
+   "   " );
        }
    }
}
运行结果:
- 45   100   26   122  
211   100   26   122
 
从上面的运行结果可以看出,第一行输出了未转换的 IP 地址,由于 www.csdn.net IP 地址的第一个字节大于 127 ,因此,输出了一个负数。而第二行由于将 IP 地址的每一个字节转换成了 int 类型,因此,输出了正常的 IP 地址。



 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214760,如需转载请自行联系原作者

相关文章
|
29天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
52 11
|
21天前
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
62 8
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
113 3
图卷积网络入门:数学基础与架构设计
|
1月前
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
90 2
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
84 3
|
2月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
2月前
|
网络协议 Java 物联网
Java网络编程知识点
Java网络编程知识点
59 13
|
2月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
2月前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
245 0
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
253 1