直接上代码:
import java.io.IOException; import java.net.*; /** * 查找IP地址 */ public class TestFindDNS { public static void main(String[] args) throws IOException { // String href = "http://www.cncounter.com/tools/shorturl.php"; // 端口号 int port = parsePort(href); // 域名 String host = parseHost(href); // IP 地址 String address = parseIp(host); // System.out.println("host=" + host); System.out.println("port=" + port); System.out.println("address=" + address); } /** * 获取端口号 * * @param href 网址, ftp, http, nntp, ... 等等 * @return * @throws IOException */ public static int parsePort(String href) throws IOException { // URL url = new URL(href); // 端口号; 如果 href 中没有明确指定则为 -1 int port = url.getPort(); if (port < 0) { // 获取对应协议的默认端口号 port = url.getDefaultPort(); } return port; } /** * 获取Host部分 * * @param href 网址, ftp, http, nntp, ... 等等 * @return * @throws IOException */ public static String parseHost(String href) throws IOException { // URL url = new URL(href); // 获取 host 部分 String host = url.getHost(); return host; } /** * 根据域名(host)解析IP地址 * * @param host 域名 * @return * @throws IOException */ public static String parseIp(String host) throws IOException { // 根据域名查找IP地址 InetAddress.getAllByName(host); InetAddress inetAddress = InetAddress.getByName(host); // IP 地址 String address = inetAddress.getHostAddress(); return address; } }
根据IP获取地址
package test; import net.sf.json.JSONObject; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class GetAddressByIp { public static void main(String[] args) { String resout = ""; try { String str = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip="+"138.30.25.101"); System.out.println(str); JSONObject obj = JSONObject.fromObject(str); JSONObject obj2 = (JSONObject) obj.get("data"); String code = obj.get("code").toString(); if(code.equals("0")) { resout = obj2.get("country")+"--" +obj2.get("area")+"--" +obj2.get("city")+"--" +obj2.get("isp"); } else { resout = "IP地址有误"; } } catch(Exception e) { e.printStackTrace(); resout = "获取IP地址异常:"+e.getMessage(); } System.out.println("result: " + resout); } public static String getJsonContent(String urlStr) { try { // 获取HttpURLConnection连接对象 URL url = new URL(urlStr); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); // 设置连接属性 httpConn.setConnectTimeout(3000); httpConn.setDoInput(true); httpConn.setRequestMethod("GET"); // 获取相应码 int respCode = httpConn.getResponseCode(); if (respCode == 200) { return ConvertStream2Json(httpConn.getInputStream()); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } private static String ConvertStream2Json(InputStream inputStream) { String jsonStr = ""; // ByteArrayOutputStream相当于内存输出流 ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; // 将输入流转移到内存输出流中 try { while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) { out.write(buffer, 0, len); } // 将内存流转换为字符串 jsonStr = new String(out.toByteArray()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonStr; } }
我明白任何客户端应用程序请求查询域名将发送到DNS服务器域名到IP解析。但是如果请求的查询只是IP地址,这是否意味着该查询不会发送到DNS服务器进行解析?我想知道客户机应用程序是否会决定节省到DNS服务器的行程?请指教。谢谢!!
本文向大家介绍Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP,包括了Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP的使用技巧和注意事项,需要的朋友参考一下
主要功能: 1、输入域名或IP地址查询所属地理区域; 2、DIV+CSS模板方便修改; 3、可自己升级更新IP数据库; 3、免费、开源程序。 演示:http://www.damazha.com/tool/ip
问题内容: 我想从Swift中的DNS查询中获取IP地址(例如192.168.0.1或87.12.56.50)。我用100种不同的方法尝试了100次…没有任何帮助,所以我必须寻求帮助。到目前为止,这是我的代码: 问题答案: 您的代码将地址检索为“套接字地址”结构。 可用于将地址转换为数字IP字符串回收的代码,现已更新为Swift 2 ): 输出(示例): 还要注意第一行的用法,因为名称中 带有“
本文向大家介绍python实现查询IP地址所在地,包括了python实现查询IP地址所在地的使用技巧和注意事项,需要的朋友参考一下 使方法一、用IP138数据库查询域名或IP地址对应的地理位置。 方法二、本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码 但是多次查询发现ip归属地不准确,于是使用17mon的ip查
本文向大家介绍Java判断IP地址为内网IP还是公网IP的方法,包括了Java判断IP地址为内网IP还是公网IP的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法。分享给大家供大家参考。具体分析如下: tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下: 10.0.0.0/8:10.0.0.0~10.255.255