如何搭建一个获取公网 ip 的服务(在中国)

vps网友提供 05-08 讨论归档 65

一直有在用 ifconfig.coifconfig.mewhatismyip.akamai.com 获取当前的公网 ip, 最近有需求要在浏览器中获取用户的真实 IP, 现有的轮子有跨域资源访问的问题, 并且 ifconfig.co 还被 block 了,遂产生了写一个支持跨域访问的获取公网 ip 的服务

关于为啥不能直接获取到用户的真实 IP 地址我也解释下,应用程序是部署在 k8s 集群中的 Sentry, 用于监控服务的错误信息, 但因为使用了阿里云 LoadBalance , calico 以及 k8s 的 ingress 控制器, 导致获取用户真实 IP 变得不那么容易,虽然这样能在一定程度上保证服务的稳定。

后来翻到在提交错误信息的时候是可以手动提交 IP 地址的,就产生了搭建这个服务的想法

1 图 1. sentry 报告的 IP 地址均为内网地址

以上是背景


开始兴匆匆撸代码,有用的代码就三行(完整代码)

add_header Access-Control-Allow-Origin *; # 允许跨域访问
content_by_lua '
    ngx.say(ngx.var.remote_addr) # 返回客户端 IP 地址
';

用不了几分钟就写完了,测试没问题,找个服务器部署吧,k8s 肯定是不能用了,据说腾讯云最近搞活动 研究了下活动内容, 花了 526 买了台 1 核 1G 200M 宽带的机器三年...

2 3

心里美滋滋,比首页的活动优惠并且配置还更好

复制粘贴没多久就搭好服务,解析域名,咱域名可是有备案的

虽然听说腾讯云和阿里云的备案是分开的, 想想再复杂能复杂到哪去。。悻悻的解析好域名,期望运气差的不会是我

果不其然,隔两天上去就发现被封了

4

那就老实备案吧

5

没多久第一个问题就出来了

6

备案密码是什么鬼。怎么一点印象都没

7

翻文档才想起来备案成功后有个短信告诉密码。。拿到后没用过就没了印象, 只能找回密码

8

信息需要填的不多,很快就提示操作成功,我就不吐槽网站的 UI 了。

再后来发现如果是在上海备案的机器,迁移备案也必须填写上海地址,电话以及上海户口(或者居住证)

碰巧居住证过期了没有续期。。。。。。

心痛。。结论,迁移备案比直接备案痛苦多了。。。

那就换一条路,注册一个新域名,本想等着 app 域名发布, 后来想到域名备案还不支持 app 域名,果断放弃

机智的花了 248 买了个 iiip.co 域名,

9

这会不用忍受迁移备案的痛苦了,美滋滋

10 11 12 13

万念俱灰。遂买了个香港阿里云静静的搭好服务器....


如果不用备案。这篇文章应该是这样

写好代码

add_header Access-Control-Allow-Origin *; # 允许跨域访问
content_by_lua '
    ngx.say(ngx.var.remote_addr) # 返回客户端 IP 地址
';

搭好服务

完。。。

本文由 vps网友提供,转载请注明出处

本文链接: https://www.vpsvsvps.com/discuss/a/1676471908746399744.html

标签:
mofe
05-08

@litter123 如果要比性能,openresty 应该比 PHP 会更快。。毕竟 cloudflare 之前用的就是 openresty

1 核 1G 的机器在从上海访问上海平均十几毫秒

mofe
05-08

@valorachen 两个优惠叠加诶,包年本来就有优惠,然后实名认证之后送的优惠券是可以叠加使用的,所以算下来比官网的优惠力度还要大,而且官网的宽带小水管,还是系列 1 的机器。。

mofe
05-08

@crbee 估计按流量会更优惠,所以搞的按流量收费

bzq2810
05-08

curl ip.cn
curl ipinfo.io

tangzipeng
05-08

@imdong 难怪我前阵子域名没备案,一直可以用……

litter123
05-08

获取公网 IP,写一个 PHP 就行了,$_SERVER['REMOTE_ADDR'],然后在 web 服务器设置允许的域名

imdong
05-08

偷偷告诉楼主,根据协议原理,没备案的域名用 https 也不会被发现的。

valorachen
05-08

这是腾讯云什么活动?能给个链接吗?我好像找不到额

crbee
05-08

是按流量计费的么?

mofe
05-08

@ichuan httpbin.org 不开代理好像没法访问。。

mofe
05-08

@moult 赞。。 不过 SAE 存在感好低。。想到自己有 k8s 集群就没考虑过同类的产品。。

moult
05-08

其实这种服务可以直接用 SAE 跑,完全不需要单独搞一台服务器。

mofe
05-08

开 https 获取个 ip 输入的字母就多了。。curl 默认不会重定向。。。

XSugar
05-08

开 https 就不用备案了

ichuan
05-08

不错,个人常用的一个是:

$ curl httpbin.org/ip
{
"origin": "1.2.3.4"
}

mofe
05-08

@songz 没啥干货。。

精简版在这。。。https://www.mofe.me/2018/0504/

mofe
05-08

@songz 图片没有缩放。。的确不容易排版。但是只有表情才能表达我的心情。。

songz
05-08

一篇文章就这么被那些表情毁了

huiyifyj
05-08

233😂
看来备案转移确实麻烦。emm 下回转移会掂量着点。

mofe
05-08

额,悻悻的附上新写的博客的链接。。。https://www.mofe.me/2018/0508/