/// <summary>

/// 获取客户端外网IP,省份,城市,运营商

/// 2012年12月18日 15:07

/// </summary>

public class GetOutMessage

{

/// <summary>

/// 获取全部信息

/// </summary>

/// <returns>一段网页代码</returns>

private static string getOutMessage()

{

WebClient client = new WebClient();

client.Credentials = CredentialCache.DefaultCredentials;

client.Headers.Set("User-Agent", "Microsoft Internet Explorer");

client.Encoding = System.Text.Encoding.Default;

string response = client.UploadString("http://iframe.ip138.com/ipcity.asp", "");

Match mc = Regex.Match(response, @"location.href=""(.*)""");

response = client.UploadString(mc.Groups[1].Value, "");

return response;

}

/// <summary>

/// 外网IP

/// </summary>

/// <returns>外网IP地址</returns>

public static string getOutIp()

{

string response = getOutMessage();

int i = response.IndexOf("[") + 1;

string ip = response.Substring(i, 14);

string ips = ip.Replace("]", "").Replace(" ", "");

return ips;

}

/// <summary>

/// 省份

/// </summary>

/// <returns>省份</returns>

public static string getOutProvince()

{

string response = getOutMessage();

int i = response.IndexOf("自") + 2;

string province = response.Substring(i, response.IndexOf("省") - i + 1);

return province;

}

/// <summary>

/// 城市

/// </summary>

/// <returns>城市</returns>

public static string getOutCity()

{

string response = getOutMessage();

int i = response.IndexOf("省") + 1;

string city = response.Substring(i, response.IndexOf("市") - i + 1);

return city;

}

/// <summary>

/// 运营商

/// </summary>

/// <returns>运营商</returns>

public static string getOutProvider()

{

string response = getOutMessage();

int i = response.IndexOf("市") + 2;

string provider = response.Substring(i, 2);

return provider;

}

}

C# 获取外网IP和运营商和城市的更多相关文章

  1. c#获取外网IP地址的方法

    1.如果你是通过路由上网的,可以通过访问ip138之类的地址来获取外网IP 2.如果是通过PPPOE拨号上网的,可以使用以下代码获取IP //获取宽带连接(PPPOE拨号)的IP地址,timeout超 ...

  2. Curl之获取外网IP

    获取外网IP:curl -s ifconfig.me

  3. .NET记录-获取外网IP以及判断该IP是属于网通还是电信

    在工作时,需要获取服务器公网IP(外网IP),并且判断该IP地址是属于网通还是电信.花时间整理一下,自己实现的代码,以及后续遇到的问题. /// <summary> /// 获取外网IP ...

  4. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  5. C#获取外网IP、本机MAC地址及Ping的实现

    原文 获取外网IP, C#获取本机的MAC地址,C#通过编程方式实现Ping 获取外网IP地址 思路是通过WebRequest连接一些网上提供IP查询服务的网站,下载到含有你的IP的网页,然后用正则表 ...

  6. JAVA 优先获取外网Ip,再获取内网Ip

    1.获取内网Ip private String getLocalhostIp(){ String hostAddress = ""; try { InetAddress addre ...

  7. linux获取外网ip

    引言:目前获取ip的方法中,ifconfig和ip获取函数得到的都是内网ip.有时候需要获取外网ip,目前通用的做法,是向外部服务器发送请求,解析外部服务器响应,从而得到的自己的外网ip.linux下 ...

  8. java获取外网ip地址

    转自:http://blog.163.com/houjunchang_daxue/blog/static/13037938320134543310451/ /** * 获取外网IP.归属地.操作系统 ...

  9. C# 获取外网IP地址

    很多情况下我们需要获取外网的IP地址,一般用自带的方法获取到的都是不准确,往往获取到的是内网的IP地址,所以需要采用外部网站接口来获取. 代码 通过访问第三方接口来获取真实的ip地址 public s ...

随机推荐

  1. Elipse clean后无法编译出class文件

    通常之前一直运行正常的项目,在某次修改或重新启动时总是报 ClassNotFoundException,而事实是这个类确实存在,出现这种原因最好看看 build文件下的classes是否为空 或 编译 ...

  2. 点聚-weboffice 6.0 (三)

    1.页面 var filename="<%=request.getParameter("filePath").toString()%>"; docu ...

  3. centos7 安装php

    http://blog.csdn.net/zhaozuosui/article/details/48394409

  4. 【Leetcode-easy】Remove Element

    思路:遍历数组,count保存下一个元素的位置,如果不与该元素相同,那么将该数保存在count位置,并且count++,否则,继续遍历. public int removeElement(int[] ...

  5. 【Leetcode-easy】Reverse Integer

    思路:取绝对值,反转,并判断反转的结果是否大于最大整数,需要注意的细节:判断时需要这样:result > (Integer.MAX_VALUE - v) / 10 否则result * 10 + ...

  6. View源码-Touch事件

    在Android-27中查看源码: 首先我们来查看单个View的触摸事件的处理,在View的dispatchTouchEvent方法中看看源码是如何处理的. public boolean dispat ...

  7. mini2440 u-boot下设置tftp

    在烧写好u-boot后,重新启动mini2440,一直按空格键进入u-boot界面: U-Boot 月 - ::) modified by tekkamanninja (tekkamanninja@. ...

  8. RQNOJ 342 最不听话的机器人:网格dp

    题目链接:https://www.rqnoj.cn/problem/342 题意: DD 有一个不太听话的机器人,这个机器人总是会有自己的想法,而不会完全遵守 DD 给它的指令. 现在 DD 在试图命 ...

  9. JS 删除数组中指定的某个元素的方法

    //首先创建函数方法 Array.prototype.indexOf = function(val){ for(var i=0;i<this.length;i++){ if(this[i] == ...

  10. jsp参数传递

    jsp参数传递 jsp中四种传递参数的方法 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf=&q ...