今天来谈谈为什么我们的网址,通常是使用域名,而不是 IP 地址。 首先我们了解一下 DNS 是什么。 DNS DNS,全称为 Domain Name System,即域名系统。...其实就是:域名 --> IP --> 真实服务器。 为什么要用域名而不用 IP? 首先,域名方便记忆。 IP 没有意义,比如 39.156.66.10 就像是一个手机号,难以记忆。...然后,通过域名的这一层抽象,我们可以随意地更换其下的 IP 地址。 如果我们的网站用的是一个固定 IP,当我们想更换服务器,同时也代表 IP 会被替换,那我们就需要一个个通知用户,这是不能接受的。...负载均衡就是让 DNS 给不同的用户提供不同的 IP 地址,让他们访问不同的服务器,通过集群的方式,减轻单个服务器的压力。...结尾 通过 DNS 系统,我们可以用域名获得对应 IP 地址,这样更容易记忆,也对 IP 代表的具体服务器做了一层抽象,能更好地去替换服务器或实现集群。 我是前端西瓜哥,关注我,学习更多前端知识。
计算机只能识别二进制的数据,所以我们的IP地址应该是一个二进制的数据。 但是呢,我们配置的IP地址确不是二进制的,为什么呢?...所以,为了方便表示IP地址,我们就把IP地址的每一个字节上的数据换算成十进制,然后用.分开来表示: "点分十进制" b:IP地址的组成 网络号段+主机号段 A类:第一号段为网络号段+后三段的主机号段...地址的分类 A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址) (2)127.X.X.X是保留地址...d:特殊的IP地址: 127.0.0.1 回环地址(表示本机) x.x.x.255 广播地址 x.x.x.0 网络地址 e:dos命令 ipconfig 查看本机ip地址 ping...// public InetAddress getAddress() InetAddress address = dp.getAddress(); String ip = address.getHostAddress
(二) 网络编程三要素 (1) IP地址 A:IP地址概述:IP地址是网络中计算机的唯一标识** 我们应该或多或少都有见过IP地址的格式 xxx.xxx.xxx.xxx大致应该是类似这样的,但是计算机不是只能识别二进制的数据...,但是很显然,我们的IP地址确实不是二进制的,这是什么原因呢?...地址的分类 A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址)...(2)127.X.X.X是保留地址,用做循环测试用的 B类 128.0.0.1---191.255.255.254 172.16.0.0---172.31.255.255是私有地址 169.254...(表示本机)//也就是说,ping本机的IP地址相当于ping 127.0.0.1 x.x.x.255 广播地址 x.x.x.0 网络地址 InetAddress的成员方法 //根据主机名或者IP地址的字符串表示得到
(127.x.x.x) boolean isLinkLocalAddress():检查 InetAddress 是否为链路本地地址的实用程序例程。...实现会尽最大努力尝试访问主机,但防火墙和服务器配置可能会阻止请求,导致无法访问状态,而某些特定端口可能可以访问。...String getHostAddress():以文本形式返回 IP 地址字符串。 返回值: 字符串格式的原始 IP 地址。...返回值: 给定主机名的所有 IP 地址的数组。 static InetAddress getLoopbackAddress():返回环回地址。...static InetAddress getByAddress(byte[] addr):返回给定原始 IP 地址的InetAddress对象。
Internet Protocol version 6(IPv6) IPv6的三种表示方法 InetAddress Java提供了InetAddress类来代表IP地址,InetAddress下还有两个子类...获取InetAddress 实例对应的IP地址和主机名: String getHostName():获取此IP地址的主机名 。...String getHostAddress():返回该InetAddress 实例对应的IP地址字符串(以字符串形式)。 byte[] getAddress():获取原始 IP 地址。...(127.x.x.x) boolean isLinkLocalAddress():检查 InetAddress 是否为链路本地地址的实用程序例程。...+ ip.isReachable(2000)); // 获取该InetAddress实例的IP字符串 System.out.println(ip.getHostAddress
你要进行网络编程就得有IP地址、域名、主机等要素,而一个InetAddress里就保存着IP地址,同时还可能包含主机名,并且它提供了主机名 - IP地址互转的方法(比简单的域名解析还牛有木有),本来主要就介绍它看看能够怎么玩...addr):在给定原始 IP 地址的情况下,返回 InetAddress 对象。...地址:" + inet.getHostAddress()); // IP地址:61.135.169.125 } 以上两种方式:通过IP构造一个InetAddress对象,因此你获取它的IP地址时将不再经过...另外,此方法在Linux下使用几乎永远返回127.0.0.1,因为在Linux下它仅仅是去读取了hosts文件的内容,而Linux下的hosts文件一般内容如下: # 这里你若配置为127.0.0.2,...其实不是的。
() throws UnknownHostException;来获取本地主机名,是一个系统原生方法和ping hostname 返回的 IP 地址是同一个,并不是 ipconfig 方法得到的 eth0...的IP 地址....addr = InetAddress.getLocalHost(); System.out.println("Local HostAddress: "+addr.getHostAddress...netInterface.isVirtual() && netInterface.isUp()) { //返回和网络接口绑定的所有IP地址..." + e.toString()); } return ""; } } 避坑 注意代码中是返回和网络接口绑定的所有IP地址 ⚠️我这边服务器有docker容器,结果根据上述代码获取本地
问题背景 通过 gitlab 容器创建了一个项目,想 clone 到本地,结果发现项目的 IP 地址是一串数字 ? 问题排查 明明创建项目的时候,IP 地址还是正常的鸭! ?...将这个 external_url 改成主机的 IP,不需要加端口哦 保存! 重启 gitlab 容器 docker restart gitlab 修改成功 ?
端口:port IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。 端口是虚拟的概念,并不是说在主机上真的有若干个端口。...必须同时指定IP地址和端口号才能够正确的发送 数据 IP地址好比为电话号码,而端口号就好比为分机号。...对象 addr = InetAddress.getByName(“61.135.253.15”); System.out.println(addr.getHostAddress()); //返回 163...服务器的ip:61.135.253.15 System.out.println(addr.getHostName()); //输出ip而不是域名。...如果这个IP地 址不存在或DNS 服务器不允许进行IP地址和域名的映射,getHostName方法就直接返回这个IP地址。
(IP)地址。...下面列出了 InetAddress 类常用的方法: 序号 方法描述 1 static InetAddress getByAddress(byte[] addr) 在给定原始 IP 地址的情况下,返回 InetAddress...3 static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。...4 String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。 5 String getHostName() 获取此 IP 地址的主机名。...6 static InetAddress getLocalHost() 返回本地主机。 7 String toString() 将此 IP 地址转换为 String。
1、计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。...有人说,20世纪最伟大的发明不是计算机,而是计算机网络。 还有人说,如果你买了计算机而没有联网,就等于买了电话机而没有接电话线一样。...4、网络编程三要素 IP地址:InetAddress 网络中设备的标识,不易记忆,可用主机名 端口号 用于标识进程的逻辑地址,不同进程的标识 传输协议 通讯的规则 常见协议:TCP,UDP IP地址:InetAddress...public static InetAddress getByName(String host):根据主机名或者IP地址的字符串表示得到IP地址对象 class InetAddressDemo {...(); // public String getHostAddress() String ip = address.getHostAddress(); System.out.println(
IP 地址字符串 String ipStr = ip.getHostAddress(); System.out.println("百度网地址 :" + ipStr); // 获取该...); InetAddress localHost = InetAddress.getLocalHost(); System.out.println("本机 IP 地址所对应的 InetAddress...】 Java 提供了 InetAddress 类代表 IP 地址,InetAddress 下还有两个子类 Inet4Address 和 Inet6Address,它们分别代表 IPv4 和 IPv6...InetAddress getLocalHost() 获取本机 IP 地址所对应的 InetAddress 实例 public String getHostAddress() 返回该 InetAddress... 实例所对应的 IP 地址字符串 public String getHostName() 返回此 IP 地址的主机名称
180709-Java实现获取本机Ip的工具类 获取本机Ip算是比较常见的一个需求场景了,比如业务报警,可能就会带上出问题的机器IP,方便直接上去看日志定位问题,那么问题来了,如何获取机器IP呢?...在某些情况下,可能返回的是 127.0.0.1 在虚拟机中执行时,就可能遇到这个问题,截图如下 2....进阶版 做一点简单的改动,获取IpV4的地址,源码如下 /** * 直接根据第一个网卡地址作为其内网ipv4地址,避免返回 127.0.0.1 * * @return */ public static...(); } } } return InetAddress.getLocalHost().getHostAddress...= "127.0.0.1"; /** * 直接根据第一个网卡地址作为其内网ipv4地址,避免返回 127.0.0.1 * * @return */
网络编程的深入了解一、引入1、网络编程把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源...2、通信两个重要的要素:IP+PORT域名:www.baidu.com --> DNS服务器解析 --> IP地址 www.sina.com www.bbbb.com3...ia2 = InetAddress.getByName("localhost");//localhost指代的是本机的ip地址 System.out.println(ia2);...InetAddress ia3 = InetAddress.getByName("127.0.0.1");//127.0.0.1指代的是本机的ip地址 System.out.println...());//获取ip地址 }}2、InetSocketAddress来封装了IP和端口号public class Test02 { //这是一个main方法,是程序的入口: public
getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。 ...InetAddress还提供了如下三个方法来获取InetAddress实例对应的IP地址和主机名: String getCanonicalHostName():获取此 IP 地址的全限定域名。 ...String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式)。 ...除此之外,InetAddress类还提供了一个getLocalHost()方法来获取本机IP地址对应的InetAddress实例。 ...” + ip.isReachable(2000)); //获取该InetAddress实例的IP字符串 System.out.println(ip.getHostAddress()); //
InetAddress类 一.InetAddress类: InetAdderss类是JDK中提供了一个类,该类用于封装一个IP地址,并提供了一系列与IP地址相关的方法。...()—-返回本地主机 String getHostName()—-获取此IP地址的主机名 String getHostAddress()—-返回IP地址字符串(以文本表现形式) 上表中,列举了InetAddress...通过InetAddress对象便可获取指定主机名,IP地址等,接下来通过一个案例来演示InetAddress的常用方法,如下所示。...("www.baidu.com"); System.out.println("该主机域名和IP地址:"+inetAddress); } } 2.获取本机的域名和IP地址: import...//获取inetAddress对应的域名: System.out.println("该主机名的IP地址为:"+inetAddress.getHostAddress()); } }
public String getHostAddress(); getHostName() 该方法返回主机名或ip。...getHostAddress() 返回一个点分四段式ip字符串。...通过广播地址可以向网络中的所有计算机发送信息,而不是只向一台特定的计算机发送信息。...(是不是内网ip) IPv4的地址本地地址分为三段:10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255...本地接口广播地址不能将广播信息发送到产生广播信息的网络接口,即使是同一台计算机的另一个网络接口也不行。所有的IPv4广播地址都不是本地接口广播地址。
InetAddress的其它实例方法们介绍 //获取主机名 public String getHostName(); //获取主机名(每次方法都解析DNS去获取主机名,而不从缓存中获取) public...// 通过广播地址可以向网络中的所有计算机发送信息,而不是只向一台特定的计算机发送信息。...public boolean isAnyLocalAddress(); // 当IP地址是loopback地址时返回true,否则返回false。loopback地址就是代表本机的IP地址。...public boolean isMCGlobal(); // 当IP地址是本地接口广播地址时返回true,否则返回false。...public boolean isMCNodeLocal(); // 当IP地址是子网广播地址时返回true,否则返回false。
public byte[] getAddress(); //获取点分四段式ip。 public String getHostAddress(); getHostName() 该方法返回主机名或ip。...getHostAddress() 返回一个点分四段式ip字符串。...通过广播地址可以向网络中的所有计算机发送信息,而不是只向一台特定的计算机发送信息。...(是不是内网ip) IPv4的地址本地地址分为三段:10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255...本地接口广播地址不能将广播信息发送到产生广播信息的网络接口,即使是同一台计算机的另一个网络接口也不行。所有的IPv4广播地址都不是本地接口广播地址。
最近项目突然加了个需求,上传用户的ip和mac,话不多说,直接上代码 获取Mac地址实际项目中测试了如下几种方法: (1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到...inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress...inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress...获取到了类似fe80::b607:f9ff:fee5:487e..这样的IP地址。经过一番努力,终于找出原因。 上面的IP地址是IPV6的地址形式(大概这个意思,具体没有太深入研究)。...解决方法是,在上面代码中的最内层的for循环的if语句中对inetAddress进行格式判断,只有其是IPV4格式地址时,才返回值。