最近在开发项目的过程中需要获取用户查询时的IP地址的区域,以用来做统计分析用。经过一番查阅资料,然后写了个测试程序,很快就搞定了这个功能。

现在分享下我的实现方法,大家如果有更好的实现,欢迎提出哦。

首先我找到了一个比较好用的查询IP地址归属地的公用的WebService,http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx

调用其中的getCountryCityByIp 方法可以获取到具体的IP的区域地址。该WebService的说明如下:

getCountryCityByIp

通过输入IP地址查询国家、城市、所有者等信息。没有注明国家的为中国

输入参数:IP地址(自动替换 " 。" 为 "."),返回数据: 一个一维字符串数组String(1),String(0) = IP地址;String(1) = 查询结果或提示

接下来就是要获取用户当前电脑的上网IP了,具体的实现方法如下所示:

/// <summary>
        /// 获取本机的上网IP
        /// </summary>
        /// <returns></returns>
        private string GetConnectNetAddress()
        {
            string strUrl = "http://www.ip138.com/ip2city.asp"; //获得IP的网址
            Uri uri = new Uri(strUrl);
            WebRequest webreq = WebRequest.Create(uri);
            Stream s = webreq.GetResponse().GetResponseStream();
            StreamReader sr = new StreamReader(s, Encoding.Default);
            string all = sr.ReadToEnd(); //读取网站返回的数据 格式:您的IP地址是:[x.x.x.x]
            int i = all.IndexOf("[") + 1;
            string tempip = all.Substring(i, 15);
            string ip = tempip.Replace("]", "").Replace(" ", "").Replace("<", "");
            return ip;
        }

这个方法是http://www.ip138.com/ip2city.asp通过在这个网站上抓取到电脑的上网的IP地址来实现获取本机的上网的IP地址的。

当然如果那天这个网站更改了域名或者不存在了,这个方法就不能用了哦,呵呵。

接下来的事情就很简单了,将上面的webservice添加到项目中去,然后调用这个webservice来获取上网的区域。

具体实现如下:

/// <summary>
        /// 获取上网IP的区域
        /// </summary>
        /// <returns></returns>
        private string GetConnectNetAddressArea()
        {
            string strIP = GetConnectNetAddress();
            IpAddressSearchWebService webService = new IpAddressSearchWebService();
            string[] strArea=webService.getCountryCityByIp(strIP);
            return strArea[1];
        }

这样获取用户查询的上网IP地址的区域就成功实现了。

转载于:https://www.cnblogs.com/kevinGao/archive/2012/05/02/2776046.html

[置顶] C#中通过调用webService获取上网IP地址的区域的方法相关推荐

  1. php获取ip几种方法区别,php获取客户端IP地址的几种方法

    php获取客户端IP地址的几种方法 阅读php获取客户端IP地址的几种方法, 1:来看看代码: echo "(1)浏览当前页面的用户的 IP 地址为:"; echo $_SERVE ...

  2. php获取客户端IP地址的几种方法(转)

    php获取客户端IP地址的几种方法方法一 <?php $iipp=$_SERVER["REMOTE_ADDR"]; echo $iipp; ?>方法二<?php ...

  3. php获取访问者ip地址,PHP获取访问者IP地址的二种方法

    本节内容: PHP获取访问者IP地址 方法一:$_SERVER['HTTP_X_FORWARDED_FOR']来获取相应的地址 复制代码 代码示例: function get_onlineip() { ...

  4. WinForm 调用WebService 隐藏服务器IP地址之真假美猴王~!O(∩_∩)O哈哈~

    我们在WinForm项目中添加服务引用后会在App.config文件中添加如下内容: 1 <?xml version="1.0" encoding="utf-8&q ...

  5. android 获取dns地址吗,Android: 获取dns IP地址

    在Android系统中,想获取dns server的IP地址并不是一件容易的事,在bionic中,有关于获取dns IP地址的相关代码,但是你在native代码中却不能接调用相关的函数获取. 如在bi ...

  6. [置顶] iOS中 支付宝钱包详解/第三方支付

    [置顶] iOS中 支付宝钱包详解/第三方支付 韩俊强的博客 每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 一.在app中成功完成支付宝支付的过程 1.申请支付 ...

  7. vue获取接口数据_c#中HttpWebRequest调用接口获取数据

    c#中HttpWebRequest调用接口获取数据PART  01-封装接口 将post请求进行封装,以便调用使用: /// /// 请求后台地址/// 请求参数/// public string P ...

  8. 【Java网络编程】获得实验室局域网中所有开机主机名称和IP地址,InetAddress类,在java中如何获取IP地址的方法

    获得实验室所有主机的IP地址和主机名 一.InetAddress类 二.获得指定IP地址和主机名的主要方法以及练习 1.主要方法 2.源码 三.获得实验室局域网中所有开机主机名称和IP地址 1.源码 ...

  9. 如何在PHP中获取客户端IP地址[重复]

    本文翻译自:How to get the client IP address in PHP [duplicate] This question already has an answer here: ...

最新文章

  1. 瞎聊Spring Cloud
  2. 冒险岛公益服发布网_溧阳单面布来款定制,儿童冲锋衣厂家-大圣服装批发定制网...
  3. 检索数据_7_拼接列的值
  4. c语言中坐标xoy轴在哪里,用C语言在linux下获取鼠标指针的相对位置
  5. java——获取视频某一帧的图片
  6. java设计模式 外观,精掌握Java设计模式之外观模式(10)
  7. 《Go语言程序设计》读书笔记(十)反射
  8. python容易出错的地方_Python中try-except出错后如何从try出错地方继续执行?
  9. C#使用oledb操作excel文件的方法
  10. 算法设计与分析基础知识总结——dayOne
  11. Faster rcnn 实战
  12. OpenCASCADE VS2010 SP1编译
  13. 如何申请MSN帐号和所有MSN后缀邮箱申请
  14. 在Excel表中进行度分秒单位转换
  15. 如何导入android sdk,如何导入android sdk samples
  16. Unity 绘制弹球和台球的运动轨迹
  17. App移动应用测试点总结
  18. [Linux]生产者消费者模型(基于BlockQueue的生产者消费者模型 | 基于环形队列的生产者消费者模型 | 信号量 )
  19. “下一个江小白”靠什么成就?
  20. Pycharm如何打断点

热门文章

  1. shell shift与{}_一文掌握shell脚本中shift的用法及功能
  2. mrsql查询第二高的成绩_mysql-查找用户的最高分数和相关的详细信息
  3. JavaScript 断点调试技巧
  4. 毕业年限不长的前端焦虑和突破方法
  5. 【SpringBoot】在IOC之外的类中使用IOC内部的Bean
  6. 新服务器安装和配置zabbix的playbook
  7. PHP下操作Linux消息队列完成进程间通信的方法
  8. C++中事件机制的简洁实现
  9. 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?
  10. linux主要系统服务介绍