2019-11-17-dotnet-C#-获取本机外网-IP-地址
title | author | date | CreateTime | categories |
---|---|---|---|---|
dotnet C# 获取本机外网 IP 地址
|
lindexi
|
2019-11-17 16:38:10 +0800
|
2019-11-17 16:37:39 +0800
|
dotnet C#
|
本文通过 SOHU 提供的服务获取本机的外网 IP 地址
如果有自己的服务器,可以通过自己的服务器使用 asp dotnet core 服务器获取客户 IP 地址 方法,将获取的 IP 地址返回给用户
如果没有搭建服务器,可以使用 SOHU 的方法
访问 http://pv.sohu.com/cityjson 可以返回当前设备的外网 IP 地址
所以使用下面代码可以获取
var httpClient = new HttpClient(); var str = await httpClient.GetStringAsync("http://pv.sohu.com/cityjson");
但是 SOHU 返回的使用 GBK 编码,可以通过 dotnet core 使用 GBK 编码 的方法,安装 System.Text.Encoding.CodePages 库 然后注册
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var httpClient = new HttpClient(); var str = await httpClient.GetStringAsync("http://pv.sohu.com/cityjson"); Console.WriteLine(str); // var returnCitySN = {"cip": "183.63.127.82", "cid": "440100", "cname": "广东省广州市"};
此时返回的字符串不是只有 IP 需要读取字符串
var regex = new Regex(@"(\d+\.\d+\.\d+\.\d+)");
var match = regex.Match(str);
if (match.Success)
{
var ip = match.Groups[0].Value;
Console.WriteLine(ip);
}
这样就可以拿到本机的外网 IP 地址
本文所有代码放在 github 欢迎小伙伴访问
2019-11-17-dotnet-C#-获取本机外网-IP-地址的更多相关文章
- 用Linux命令行获取本机外网IP地址
引言:目前获取ip的方法中,ifconfig和ip获取函数得到的都是内网ip.有时候需要获取外网ip,目前通用的做法,是向外部服务器发送请求,解析外部服务器响应,从而得到的自己的外网ip.linux下 ...
- Linux命令行获取本机外网IP地址
问题: 服务器地址为net映射地址,本机ifconfig无法直接获取映射的公网地址. 方法: [root@TiaoBan- nidongde]# curl http://ifconfig.me 50. ...
- 【转】用Linux命令行获取本机外网IP地址
$ curl ifconfig.me $ curl icanhazip.com $ curl ident.me $ curl ipecho.net/plain $ curl whatismyip.ak ...
- 获取本机外网IP的工具类
ExternalIpAddressFetcher.java package com.tyust.common; import java.io.IOException; import java.io.I ...
- 获取本机外网ip和内网ip
获取本机外网ip //获取本机的公网IP public static string GetIP() { string tempip = ""; try { WebRequest r ...
- cURL 命令获取本机外网 IP
1.1 查询本机外网 IP # curl dhcp.cn 134.175.159.160 1.2 输出格式为 JSON # curl dhcp.cn/?json { "IP": & ...
- 查看本机外网ip地址
DOS下是无法查看外网IP的,只能获取本机内网IP地址 外网IP只能通过专门的测IP网站 http://www.ip138.com/ip2city.asp
- 获取本机外网ip
获取内网ip ifconfig eth0 | grep 'inet'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $2}' 获取公网ip ifc ...
- linux C++ 获取服务器外网IP地址(使用系统调用system)
废话不多说,直接贴代码: #include<string.h> #include<stdlib.h> #include<stdio.h> #include<s ...
- 获取本机外网IP的方式笔记
1.IP138 网址:http://www.ip138.com/: 分离出的快速查询地址:http://20140507.ip138.com/ic.asp(2014年8月9日有效) 个人经验:百度搜索 ...
随机推荐
- MyBatis Oracle批量插入
1.oracle如何insert into 多个values https://www.cnblogs.com/mq0036/p/6370224.html?utm_source=itdadao& ...
- python实现贝叶斯网络的概率推导(Probabilistic Inference)
写在前面 这是HIT2019人工智能实验三,由于时间紧张,代码没有进行任何优化,实验算法仅供参考. 实验要求 实现贝叶斯网络的概率推导(Probabilistic Inference) 具体实验指导书 ...
- using namespace std 和 include 的区别
using namespace std; int main() { std::string dd = "ddd";//会报错namespace "std" h ...
- hasLayout是什么
haslayout 是Windows Internet Explorer渲染引擎的一个内部组成部分.在InternetExplorer中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元 ...
- 设置程序PrivatePath,配置引用程序集的路径(分离exe和dll)
原文:设置程序PrivatePath,配置引用程序集的路径(分离exe和dll) 有时候我们想让程序的exe文件和dll文件分开在不同目录,这时候可以有3种方法 1.在app.config中配置 &l ...
- phpinfo空白
<?php phpinfo(); ?> 以上代码放入一个kk.php的文件里,但浏览器显示是空白. 原因: 检查php.ini文件里 disable_functions =后面有没有限制p ...
- 【51NOD1304】字符串的相似度
题目描述 我们定义2个字符串的相似度等于两个串的相同前缀的长度.例如 "abc" 同 "abd" 的相似度为2,"aaa" 同 " ...
- SPARK Day04
广播变量和累加器 广播变量 广播变量理解图 广播变量使用 val conf = new SparkConf() conf.setMaster("local").setAppName ...
- Linux安装mongoDB步骤和方法
Linux安装mongoDB步骤和方法 下载mongoDB数据库 mongodb-linux-x86_64-3.0.15.tgz 存放到linux文件夹中 ftp软件直接拖上去 解压文件夹(解压后,会 ...
- poj2987 最大权闭合图
基础题. 最小割后,与汇点相连的点都不要,然后从源点出发dfs一遍有多少相连的点即可. #include<stdio.h> #include<string.h> #includ ...