利用InetAddress.getByName()来产生你的IP地址
来源:互联网 发布:淘宝优化怎么做 编辑:程序博客网 时间:2024/05/16 09:58
作为运用InetAddress.getByName()一个简单的例子,请考虑假设自己有一家拨号连接因特网服务提供者(ISP),那么会发生什么情况。每次拨号连接的时候,都会分配得到一个临时IP地址。但在连接期间,那个IP地址拥有与因特网上其他IP地址一样的有效性。如果有人按照你的IP地址连接你的机器,他们就有可能使用在你机器上运行的Web或者FTP服务器程序。当然这有个前提,对方必须准确地知道你目前分配到的IP。由于每次拨号连接获得的IP都是随机的,怎样才能准确地掌握你的IP呢?
下面这个程序利用InetAddress.getByName()来产生你的IP地址。为了让它运行起来,事先必须知道计算机的名字。该程序只在Windows 95中进行了测试,但大家可以依次进入自己的“开始”、“设置”、“控制面板”、“网络”,然后进入“标识”卡片。其中,“计算机名称”就是应在命令行输入的内容。
package c1;
import java.net.*;
public class Test {
public static void main(String[] args)
throws Exception {
if(args.length != 1) {
System.err.println(
"Usage: WhoAmI MachineName");
System.exit(1);
}
InetAddress a =
InetAddress.getByName(args[0]);
System.out.println(a);
InetAddress addr = InetAddress.getByName(null);
System.out.println(addr);
}
} ///:~*/
/*
输出结果:
D:\workspace\test>java c1.Test PCNAME
PCNAME/192.168.1.10
localhost/127.0.0.1
D:\workspace\test>
*/
由于多种潜在的原因,我们可能没有一台客户机、服务器以及一个网络来测试自己做好的程序。我们也许是在一个课堂环境中进行练习,或者写出的是一个不十分可靠的网络应用,还能拿到网络上去。IP的设计者注意到了这个问题,并建立了一个特殊的地址——localhost——来满足非网络环境中的测试要求。在Java中产生这个地址最一般的做法是:
InetAddress addr = InetAddress.getByName(null);
如果向getByName()传递一个null(空)值,就默认为使用localhost。我们用InetAddress对特定的机器进行索引,而且必须在进行进一步的操作之前得到这个InetAddress(互联网地址)。我们不可以操纵一个InetAddress的内容(但可把它打印出来,就象下一个例子要演示的那样)。创建InetAddress的唯一途径就是那个类的static(静态)成员方法getByName()(这是最常用的)、getAllByName()或者getLocalHost()。
为得到本地主机地址,亦可向其直接传递字串"localhost":
InetAddress.getByName("localhost");
或者使用它的保留IP地址(四点形式),就象下面这样:
InetAddress.getByName("127.0.0.1");
这三种方法得到的结果是一样的。
- 利用InetAddress.getByName()来产生你的IP地址
- Java的InetAddress.getByName方法不指定主机名却可以确定主机的 IP 地址,真意外!
- InetAddress类的getByName()方法
- [java]InetAddress类的getByName()方法
- 利用InetAddress类确定特殊IP地址
- 利用InetAddress类确定特殊IP地址
- 利用InetAddress类确定特殊IP地址
- 利用InetAddress类确定特殊IP地址
- [java语言]——InetAddress类的getByName()方法
- InetAddress 获得Ip地址
- InetAddress获取IP地址
- 利用InetAddress类确定特殊IP地址 (转)
- gethostbyname, getipnodebyname, getaddrinfo, InetAddress.getByName
- 黑马程序员——封装ip地址的类InetAddress
- Java 输出通过 InetAddress 获得的 IP 地址数组
- 利用casperjs和tor来隐藏自己的ip地址
- Java InetAddress根据域名获取该域名对应的IP地址及本地IP地址
- 使用InetAddress类查询IP地址
- java程序员的python之路(线程)
- 设计模式-装饰者模式
- palindromeNumber
- Java实训第8天(面向对象)
- 访问权限修饰符(4个),继承的补充;抽象(abstract)、学习笔记
- 利用InetAddress.getByName()来产生你的IP地址
- 数据结构(第三天)栈的链式存储
- Linux硬链接和软链接
- 【solr】solr介绍
- tracker.cpp
- VC中结构体所占空间大小
- 浅谈进程地址空间与虚拟存储空间
- antiSMASH数据库:微生物次生代谢物合成基因组簇查询和预测
- 最大差值