java实现将域名解析成ip示例
发布时间:2021-11-20 10:33:33
根据中国的国情,宽带共享遭受dns污染和HTTP拦截非常严重,造成网络请求的不稳定.但是ip/tcp协议一般不受影响。因此可以把域名先解析成ip并保存,以后都用ip访问。客户端启动,把域名解析成ip,如果失败的话,测试先前的ip是否可用并鉴别ip真伪(同下)。如果解析域名成功,发送加密信息到服务器返回解密后的内容来测试ip的真伪(保证不被dns污染)。如果可能的话避免使用http协议,使用自定义协议。对于手机客户端,甚至可以先用移动网络解析域名,再使用自架设的WiFi热点。以上方法仅对宽带检测后不完全断网有效。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ParseDomainName {
InetAddress myServer = null;
InetAddress myIPaddress = null;
String domainName = null;
public ParseDomainName(String domainName) {
this.domainName = domainName;
}
public InetAddress getServerIP() {
try {
myServer = InetAddress.getByName(domainName);
} catch (UnknownHostException e) {
}
return (myServer);
}
// 取得LOCALHOST的IP地址
public InetAddress getMyIP() {
try {
myIPaddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
}
return (myIPaddress);
}
public static void main(String[] args) {
ParseDomainName pdn = new ParseDomainName("www.baidu.com");
System.out.println("Your host IP is: " + pdn.getMyIP().getHostAddress());
System.out.println("The Server IP is :" + pdn.getServerIP().getHostAddress());
}
}
猜你喜欢
- 0x00:前言参考之前的《MyBatis 中 SqlMapConfig 配置文件详解》记了一下 MyBatis 中的核心配置文件各个标签的作
- 引言在学习Java过程中,排序sort是我们常用的功能;在Java里,数组有Arrays.sort()可以排序,集合则是Collection
- 一、API简介Thread.sleep()是Thread类的一个静态方法,使当前线程休眠,进入阻塞状态(暂停执行),如果线程在睡眠状态被中断
- 如下所示:String beginDate="1328007600000";SimpleDateFormat sdf=n
- java的构造函数是一个非常重要的作用,首先java里的构造函数是可以重载的,而且因为也是可以继承在父类的构造函数,所以在子类里,首先必然是
- CXF简介CXF是一个开源的WebService框架。Apache CXF = Celtix + XFire,开始叫 Apache Celt
- 本文介绍Android中的5种数据存储方式。数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是
- 太多的if-else不太直观,难以维护。 以下面代码为例,展示几种替代if else的方法。String input = &quo
- 概述还没玩过Spring Boot,现在越来越多的公司在用了,不得不学习了。本篇是Spring Boot的开篇,简单介绍一下如何创建一个Sp
- 本文实例为大家分享了Java实现简单幸运抽奖的具体代码,供大家参考,具体内容如下代码模块:User类:package test1;publi
- 1、mybatis-plus @DS实现动态切换数据源原理首先mybatis-plus使用com.baomidou.dynamic.data
- 这篇文章主要介绍了Java多线程的临界资源问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 这篇文章主要介绍了JAVA如何定义构造函数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- SpringBoot v2.2以上重复读取Request Body内容一、需求项目有两个场景会用到从Request的Body中读取内容。打印
- 如果我们在Intellij Idea中开发好程序,需要部署到远程SSH服务器运行,我们可以使用某些SSH软件的rz功能,也可以使用专用的FT
- mybatis初始化SqlSessionFactory失败总结原因有几点1.resources中的xml配置文件放错位置或者是放的太深加载不
- ApplicationContext简述ApplicationContext代表IOC容器,在SpringIOC容器中读取Bean配置创建B
- 线程状态NEW:刚创建未启动的线程RUNNABLE:正在执行状态BLOCKED:处于阻塞状态的线程WAITING:正在等待另一个线程执行特定
- 简要:EigenFace是基于PCA降维的人脸识别算法,PCA是使整体数据降维后的方差最大,没有考虑降维后类间的变化。 它是将图像
- 本文主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一