ipify

ipify

一个简单的IP地址API。

你可以直接访问:https://api.ipify.org/ 查看你的IP

你是否需要通过程序获取对外的IP地址?

也许你正在配置新的云服务器,需要知道你的IP。

也许你在公司的防火墙后面,需要tunnel信息。

不管是什么原因:有一个获取可以获取公共IP地址的API是没坏处的。

你值得使用 ipify是因为:

  • 你可以毫无限制地使用它(即使你每分钟做数百万个请求)。
  • 它总是在线并可用的,它的基础设施是由 Heroku 提供的,这意味着你不用管运行API的服务器是否挂掉了,如果有龙卷风摧毁了东海岸,ipify仍将运行。
  • 它兼容IPv4和IPv6地址,无论你使用什么样的技术,都不会有问题。
  • ipify是开源的,Git仓库
  • 从不记录访问者信息
  • 最后,ipify是 Randall Degges 资助的,所以不用担心它会消失

API的使用

URL响应类型输出内容
https://api.ipify.orgtext98.207.254.136
https://api.ipify.org?format=jsonjson{“ip”:”98.207.254.136″}
https://api.ipify.org?format=jsonpjsonpcallback({“ip”:”98.207.254.136″});
https://api.ipify.org?format=jsonp&callback=getipjsonpgetip({“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)
}
package main

import (
"fmt"
"io/ioutil"
"net/http"
)
func getMyIP() string {
res, _ := http.Get("https://api.ipify.org")
ip, _ := ioutil.ReadAll(res.Body)
//fmt.Printf("My IP is:%s\n", ip)
return string(ip)
}
func main() {
fmt.Printf("My IP is:%s\n", getMyIP())
}
分享到