热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用c#根据IP获取物理地址

根据IP获取物理IP今天在看一篇技术帖子看到最后留言是这样的形式格式是城市+网络接入商名称+IP地址在我们以前的使用习惯中如果想留言的话必须注册成为会员以后
根据IP  获取物理IP


今天在看一篇技术帖子 看到最后 留言是这样的形式


格式是 

城市+网络接入商名称+IP地址


在我们以前的使用习惯中 如果想留言的话 必须注册成为会员以后 才能留言 


说句实话 当我特别想给谋篇文章留言的时候 一看留言板 不需要注册才能留言 我会马上离开这个页面的 绝对不会为了留言 专门注册一个账号的 


估计现在的留言板设计成非会员也能留言的模式 就是为了照顾我这样的人的  哈哈。。。。


或说话来 这样的留言形式 确实变得开放多了 


其实在很早以前我就看到过这样的形式  只是再没有看到这样的留言形式 


今天再次看到了 说什么也要研究一下 


查了一下 要实现有两种方式 


第一种方式:
下载IP库  每次从IP库中检索留言者的物理地址

第二种方式:
使用第三方IP查找接口

先说一下两种方式的优点和缺点

要根据IP获得物理地址 必须先获得留言用户的IP 这里不讨论


第一种方式(使用IP库)
优点:可以实现本地查找 无需联网
缺点:浪费时间 不能及时的更新  如果某个城市的IP地址换了 无法第一时间的更新

第二种方式(使用第三方接口)
优点:节省时间 能获得第一时间的更新的数据
缺点:需要联网

话说回来 既然浏览者可以给你留言 那么就说明你的网站肯定是联网的 
换句话说 第二种方式没有缺点 

所以 我使用的也是第二种方式 

好了 下面开始介绍:

废话不多说  上源码:

为了简单明了 我测试使用的winform应用程序来测试的



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using System.Text.RegularExpressions;
using System.Collections;
using System.Net;
using System.Xml;



namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

///
/// 点击了查询
///

///
///
private void button1_Click(object sender, EventArgs e)
{
// 获取用户输入的IP地址
string ip = textBox1.Text;

// 根据IP 显示出物理地址
MessageBox.Show(GetstringIpAddress(ip));
}

///
/// 根据IP 获取物理地址
///

///
///
public static string GetstringIpAddress(string strIP)//strIP为IP
{
string sURL = "http://www.youdao.com/smartresult-xml/search.s?type=ip&q=" + strIP + "";//youdao的URL
string stringIpAddress = "";
using (XmlReader read = XmlReader.Create(sURL))//获取youdao返回的xml格式文件内容
{
while (read.Read())
{
switch (read.NodeType)
{
case XmlNodeType.Text://取xml格式文件当中的文本内容
if (string.Format("{0}", read.Value).ToString().Trim() != strIP)
{
stringIpAddress = string.Format("{0}", read.Value).ToString().Trim();//赋值
}
break;
//other
}
}
}
return stringIpAddress;
}
}
}










推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
author-avatar
张琪健V
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有