利用vps查看ip地址

起因

平时在日常使用过程中呢,总会有需求就是查看自己的登陆机器的外网ip地址,而确实也有几家这样的网站供大家使用,例如国内的ip.cn,以及谷歌的ipinfo.io,但是毕竟是人家的服务,指不定什么时候由于你的ip访问过多就给禁了,返回403,或者是因为神秘力量导致访问谷歌服务异常:)

所以还是自己动手丰衣足食,刚好最近在学习nginx配置,就想自己折腾折腾,实现思路其实很简单就是nginx将访问者的ip直接返回就行,下面说下几种思路。

  1. nginx模块开发,获取对方ip,或者x-forward-ip进行返回,因为之前做过相应开发,所以这是想到的第一个思路
  2. nginx后面挂一个服务,nginx将location导向该服务,然后该服务进行返回(定制化程度高,可以自己进行开发定制)
  3. 直接使用nginx的配置将remote_addr返回,该方法最简单,直接上配置
    1. 考虑到ipinfo.io支持的功能很多并且很好用,并且允许一个ip每天1k的访问次数,对于个人使用来说完全够用了,因此还可以加一个location进行ip地理位置的查询:)
1
2
3
4
5
6
7
8
9
10
11
12
location = /myip{
defult_type text/plain;
return 200 "$remote_addr\n";
}
#是的你目前访问的域名就有这个功能
upstream ipinfo {
server ipinfo.io;
}
location ~ /ipinfo/(.*) {
proxy_pass http://ipinfo/$1;
proxy_set_header Host ipinfo.io; #这条必须有,不然的话会携带错误Host访问谷歌服务里是会失败的
}

配置完成之后使用命令验证,成功:)