一个简单的IP地址API。
你可以直接访问:[https://api.ipify.org/][1] 查看你的IP
你是否需要通过程序获取对外的IP地址?
也许你正在配置新的云服务器,需要知道你的IP。
也许你在公司的防火墙后面,需要tunnel信息。
不管是什么原因:有一个获取可以获取公共IP地址的API是没坏处的。
你值得使用 ipify是因为:
你可以毫无限制地使用它(即使你每分钟做数百万个请求)。
它总是在线并可用的,它的基础设施是由 Heroku 提供的,这意味着你不用管运行API的服务器是否挂掉了,如果有龙卷风摧毁了东海岸,ipify仍将运行。
它兼容IPv4和IPv6地址,无论你使用什么样的技术,都不会有问题。
ipify是开源的,Git仓库
从不记录访问者信息
最后,ipify是 Randall Degges 资助的,所以不用担心它会消失
API的使用
URL | 响应类型 | 输出内容
https://api.ipify.org | text | 98.207.254.136
https://api.ipify.org?format=json | json | {“ip”:”98.207.254.136″}
https://api.ipify.org?format=jsonp | jsonp | callback({“ip”:”98.207.254.136″});
https://api.ipify.org?format=jsonp&callback=getip | jsonp |getip({“ip”:”98.207.254.136″});
示例
Bash
#!/bin/bash
ip=$(curl -s https://api.ipify.org)
echo "My public IP address is: $ip"
Python
# This example requires the requests library be installed. You can learn more
# about the Requests library here: http://docs.python-requests.org/en/latest/
from requests import get
ip = get('https://api.ipify.org').text
print('My public IP address is: {}'.format(ip))
PHP
<?php
$ip = file_get_contents('https://api.ipify.org');
echo "My public IP address is: " . $ip;
?>
Java
try (java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://api.ipify.org").openStream(), "UTF-8").useDelimiter("\\A")) {
System.out.println("My current IP address is " + s.next());
} catch (java.io.IOException e) {
e.printStackTrace();
}
NodeJS
var http = require('http');
http.get({'host': 'api.ipify.org', 'port': 80, 'path': '/'}, function(resp) {
resp.on('data', function(ip) {
console.log("My public IP address is: " + ip);
});
});
JavaScript
<script type="application/javascript">
function getIP(json) {
document.write("My public IP address is: ", json.ip);
}
</script>
<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>
jQuery
<script type="application/javascript">
$(function() {
$.getJSON("https://api.ipify.org?format=jsonp&callback=?",
function(json) {
document.write("My public IP address is: ", json.ip);
}
);
});
</script>
Go
package main
import (
"io/ioutil"
"net/http"
"os"
)
func main() {
res, _ := http.Get("https://api.ipify.org")
ip, _ := ioutil.ReadAll(res.Body)
os.Stdout.Write(ip)
}