API指南文档

目前可用的API如下

IP地理位置解析(IP Location Parser)

User-Agent解析(User-Agent Device Parser)

二维码生成(QR Code)

短网址生成(Url Shorter)

短网址还原(Url Recover)

必应每日美图(Bing Wallpaper)

中国银行外汇牌价(Bank of China RMB Exchange Rate)

V2rayN-Quantumult订阅格式转换(Subscribe format conversion - V2rayN to Quantumult)

Gravatar头像获取(Get Gravatar)

如需数据来源或项目源码请邮件联系im@hanada.info
API数据和功能均由开源项目或免费接口提供,仅作测试用途,随时可能停用,请勿用于生产环境

IP Location Parser API

接口地址:https://api.hanada.info/ip
返回格式:text/json
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
ip string {请求者IP} 用于分析的IP地址。
若缺省或不是合法的IPV4或IPV6地址则直接获取请求端的IP并作分析。
例1:113.108.182.52
例2:240e:ff:b55a:f9fe:75a5:98d8:f020:9084
database string ipip 数据库类型。
可选值为ipip和chunzhen,对应IPIP数据库和纯真IP数据库。
PIP数据库是实时请求IPIP.NET的API的,所以有一定几率会请求失败,请求失败时会用chunzhen离线数据库解析。
当解析的IP地址为IPV6时,将无条件使用IPIP数据库解析(纯真IP数据库不支持IPV6)
format string json 指定返回格式。可选值为ip、json,当参数值为ip时不解析地理位置,直接以纯文本返回请求端的ip

请求示例
https://api.hanada.info/ip/?database=ipip&ip=113.108.182.52
https://api.hanada.info/ip/?database=ipip&ip=240e:ff:b55a:f9fe:75a5:98d8:f020:9084
https://api.hanada.info/ip/?format=ip

返回结果

{
  "code": 200,              //HTTP状态码
  "msg": "success",         //结果说明,若为success则正常返回
  "title": "IP Location Parser",  //API名称
  "database": "ipip",       //IP数据库
  "ip": "113.108.182.52",   //解析的IP地址
  "ipver": 4,               //IP地址类型,4为IPV4,6为IPV6
  "location": {
    "country": "中国",     //国家
    "province": "广东",    //省/自治区/直辖市/特别行政区/州/郡/府/县等
    "city": "广州",        //地区或城市
    "company": "",        //单位或学校
    "isp": "电信"          //运营商
  }
}

{
  "database": "chunzhen",         //IP数据库
  "ip": "113.108.182.52",         //解析的IP地址
  "ipver": 4,                     //IP地址类型,4为IPV4,6为IPV6
  "location": {
    "country": "中国广东广州",     //国家地区城市   
    "isp": "电信"                 //运营商
  }
}

113.108.182.52     //指定参数format=js时只返回ip地址

QRCode API

接口地址:https://api.hanada.info/qr
返回格式:image/png
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
text string 生成的二维码包含的内容
可为纯文本或URL,若为URL需urlencode。
例:https%3a%2f%2fhanada.info
margin int 1 二维码白色边框尺寸等级
可选参数为1-10。参数越高,边框越宽。
size int 二维码图片尺寸
单位为px,缺省时将根据容错级别和尺寸等级自动指定。
point int 6 二维码图片尺寸等级
可选参数为1-10。参数越高,图片尺寸越大。
size参数非缺省时本参数无效。
err string M 容错级别(errorLevel)
容错率越高越容易被识别,但图片复杂度也会相应提高。
可选参数如下:
     L         7%
     M       15%
     Q        25%
     H        30%

请求示例
https://api.hanada.info/qr?margin=1&err=M&size=300&point=6&text=https%3a%2f%2fhanada.info
返回结果
以下为请求示例链接后生成的图片:

User-Agent Device Parser API

接口地址:https://api.hanada.info/ua
返回格式:text/json
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
ua string {请求者UA} 用于分析的User-Agent。
需urlencode。若缺省则获取请求端User-Agent并分析。
例:Mozilla/5.0%20(Linux;%20Android%208.0.0;%20MI%206)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/73.0.3683.90%20Mobile%20Safari/537.36
(urlencode前:Mozilla/5.0 (Linux; Android 8.0.0; MI 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36)

请求示例
https://api.hanada.info/ua/?ua=Mozilla/5.0%20(Linux;%20Android%208.0.0;%20MI%206)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/73.0.3683.90%20Mobile%20Safari/537.36

返回结果

{
	"code": 200,   //HTTP状态码
	"msg": "success",        //结果说明,若为success则正常返回
	"title": "User-Agent Device Parser",   //API名称
	"useragent": "Mozilla/5.0 (Linux; Android 8.0.0; MI 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36", //用于分析的UA
	"browser": {                  //浏览器信息
		"stock": false,    
		"hidden": false,
		"channel": "Nightly",    
		"name": "Chrome",         //浏览器名称
		"version": {              //浏览器版本
			"original": "73.0.3683.90"
		}
	},
	"engine": {
		"name": "Webkit",         //浏览器内核
		"version": {
			"original": "537.36", //内核版本
			"alias": null
		}
	},
	"os": {                       //操作系统信息
		"name": "Android",        //操作系统名称
		"version": {              //操作系统版本   
			"alias": "8.0.0",
			"original": "8.0.0"
		}
	},
	"device": {                   //设备信息
		"type": "mobile",         //设备类型
		"identified": false,
		"manufacturer": "Xiaomi", //制造商
		"model": "MI-6"           //设备型号
	},
	"camouflage": false,
	"features": []
}

URL Shorter API

接口地址:https://api.hanada.info/shorturl
返回格式:text/json、text/plain、image/png
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
domain string t.cn 短网址域名
目前提供t.cn(新浪短网址)、url.cn(腾讯提供服务)、dwz.cn(百度提供服务)、u.nu(unu)四种短网址类型。
可选参数为t.cn、url.cn、dwz.cn、u.nu
注:dwz.cn会拒绝解析未被百度收录的网址、u.nu会拒绝解析进行了重定向的网址(包括但不限于301和302重定向)。
keyword string 仅在domain参数为u.nu时有效,可以为域名指定对应的短网址后缀,即指定[keyword]后短网址为u.nu/[keyword]
例:https://example.com/的keyword为example,短网址为u.nu/example。
注:

  • 如果该网址已经被生成过短网址,则无法再次生成新的短网址,即此时keyword无效,返回已经被生成的短网址。
  • keyword先到先得,只能指定未被使用的keyword,若已被占用则无法再次使用。
force boolean false 仅在domain参数为u.nu、keyword非缺省时有效。当force参数为true时,当指定keyword已被占用,仍然直接生成短网址,keyword随机生成。
当force参数为false时,当指定keyword已被占用,返回错误信息。
url string 用于生成短网址的原网址,需要urlencode。
format string 可选 url 输出的格式
可选参数为url、json和qrcode。
格式为url时,直接输出短网址;
格式为json时,以json格式输出短网址等信息;
格式为qrcode,将生成的短网址编码为二维码图片并输出。
margin int 1 二维码白色边框尺寸等级
可选参数为1-10。参数越高,边框越宽。
size int 二维码图片尺寸
单位为px,缺省时将根据容错级别和尺寸等级自动指定。
point int 6 二维码图片尺寸等级
可选参数为1-10。参数越高,图片尺寸越大。
size参数非缺省时本参数无效。
err string M 容错级别(errorLevel)
容错率越高越容易被识别,但图片复杂度也会相应提高。
可选参数如下:
     L         7%
     M       15%
     Q        25%
     H        30%

请求示例
https://api.hanada.info/shorturl?domain=t.cn&format=url&url=https%3a%2f%2fwww.baidu.com%2f
https://api.hanada.info/shorturl?domain=t.cn&format=json&url=https%3a%2f%2fwww.baidu.com%2f
https://api.hanada.info/shorturl?domain=t.cn&format=qrcode&url=https%3a%2f%2fwww.baidu.com%2f

返回结果
直接输出:
https://t.cn/Ryh0P2j
JSON输出:

{
    "code": 200,
    "msg": "success",
    "title": "Shorturl generate",
    "long_url": "https://www.baidu.com/",    //原网址
    "short_url": ""https://t.cn/Ryh0Ph9"   //短网址
}

二维码输出:

URL Recover API

接口地址:https://api.hanada.info/shorturltolong
返回格式:text/json、text/plain
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
url string 用于还原的短网址(其他做了301、302的类似网址也可),需要urlencode。
format string 可选 url 输出的格式
可选参数为url、json。
格式为url时,直接输出还原后的长网址;
格式为json时,以json格式输出长网址等信息。

请求示例
https://api.hanada.info/shorturltolong/?format=url&url=https%3A%2F%2Ft.cn%2FRyh0Ph9
https://api.hanada.info/shorturltolong/?format=json&url=https%3A%2F%2Ft.cn%2FRyh0Ph9

返回结果
直接输出:
https://www.baidu.com/
JSON输出:

{
    "code": 200,
    "msg": "success",
    "title": "Shorturl Recover to Longurl",
    "shorturl": "https://t.cn/Ryh0Ph9",    //短网址
    "longurl": "https://www.baidu.com/"    //还原后的网址
}

Bing Wallpaper

接口地址:https://api.hanada.info/bing
返回格式:text/json、text/plain、image/jpeg(302)
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
format string image 输出的格式
可选参数为url、json、image。
格式为url时,直接输出图片地址;
格式为json时,以json格式输出图片地址等信息。
格式为image时,直接302重定向到图片地址
id int 0 标识图片日期偏移量
可选参数为-1-14,为0时输出今日图片,为-1时输出明日图片,为1时输出昨日图片,以此类推。

请求示例
https://api.hanada.info/bing

返回结果
以下为请求示例链接后生成的图片:

若format参数为url,则输出(该链接于2019年5月1日生成):

https://s.cn.bing.net/th?id=OHR.may1_ZH-CN8582006115_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp

若format参数为json,则输出(该链接于2019年5月1日生成):

{
  "code": 200,
  "msg": "success",
  "title": "Bing Daily Wallpaper",
  "title": "【今日劳动节】 (© Katvic/Shutterstock)",    //图片标题
  "date": "20190430",     //图片日期
  "url": "https://s.cn.bing.net/th?id=OHR.may1_ZH-CN8582006115_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp"   //图片url
}

Bank of China CNY Exchange Rate API

接口地址:https://api.hanada.info/bocexchangerate
返回格式:text/json
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
currency string 指定外汇币种,若未指定则返回所有币种。
币种由三位英文缩写组成,可选值如下:
阿联酋迪拉姆:AED
澳大利亚元:AUD
巴西里亚尔:BRL
加拿大元:CAD
瑞士法郎:CHF
丹麦克朗:DKK
欧元:EUR
英镑:GBP
港币:HKD
印尼卢比:IDR
印度卢比:INR
日元:JPY
韩国元:KRW
澳门元:MOP
林吉特:MYR
挪威克朗:NOK
新西兰元:NZD
菲律宾比索:PHP
卢布:RUB
沙特里亚尔:SAR
瑞典克朗:SEK
新加坡元:SGD
泰国铢:THB
土耳其里拉:TRY
新台币:TWD
美元:USD
南非兰特:ZAR

请求示例
https://api.hanada.info/bocexchangerate?currency=usd

返回结果

{
  "code": 200,
  "msg": "success",
  "title": "Bank of China CNY Exchange Rate",
  "USD": {
    "currency": {
      "cn": "美元",                    //币种(中文)
      "en": "USD"                      //币种(英文三字母缩写)
    }, 
    "date": {
      "timestamp": 1564465803,         //中国银行本次汇率发布时间戳 
      "gmt": "2019-07-30 05:50:03",    //中国银行本次汇率发布时间戳
      "gmt+8": "2019-07-30 13:50:03"   //中国银行本次汇率发布时间(GMT+8 北京时间)
    }, 
    "rate": {
      "buyingrate": {
        "en": "Buying Rate", 
        "cn": "现汇买入价", 
        "value": 687.78       //现汇买入价
      }, 
      "cashbuyingrate": {
        "en": "Cash Buying Rate", 
        "cn": "现钞买入价", 
        "value": 682.19      //现钞买入价
      }, 
      "sellingrate": {
         "en": "Selling Rate", 
         "cn": "现汇卖出价", 
         "value": 690.7      //现汇卖出价
      }, 
      "cashsellingrate": {
         "en": "Cash Selling Rate", 
         "cn": "现钞卖出价", 
         "value": 690.7     //现钞卖出价
      }, 
      "middlerate": {
          "en": "Middle Rate", 
          "cn": "中行折算价", 
          "value": 688.62    //中行折算价
      }
    }
  }
}

注:汇率单位为100外币换算人民币,为0时表明无数据。数据非实时同步,每15分钟从中国银行官网外汇牌价页面(https://www.boc.cn/sourcedb/whpj/)拉取新数据,数据仅供参考。

Subscribe format conversion API - V2rayN to Quantumult

接口地址:https://api.hanada.info/v2rayntoquan
返回格式:text/json、text/plain
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
url string V2RayN(V2)格式的订阅地址。若地址带有特殊字符必须urlenocde。
group string Airport 组名
method string chacha20-ietf-poly1305 加密方式
format string quan 返回结果方式,若为json,则以json方式返回,若为quan则直接返回quantumult格式的订阅信息。

请求示例
https://api.hanada.info/v2rayntoquan/?url=https://api.hanada.info/s/xxxx&group=Airport&method=chacha20-ietf-poly1305
注:示例中的订阅url是无效的,访问会返回错误。

返回结果
参数format为quan时
dm1lc3M6Ly81WS13NXJtLV...d2NHOXlkRDB3Sm5WdmREMHc
参数format为json时

{
"code": 200,
"msg": "success",
"title": "Subscription format conversion - V2rayN to Quantumult",
"quan_sub": "dm1lc3M6Ly81WS13NXJtLV...d2NHOXlkRDB3Sm5WdmREMHc"   //quantumult格式的订阅信息
}

Get Gravatar API

接口地址:https://api.hanada.info/gravatar
返回格式:text/json、text/plain、text/jpeg(302)
请求方式:GET
请求参数

参数名 类型 必填 缺省值 说明
email string 邮箱地址,email和md5参数必须填写其中一个。
md5 string md5哈希后的邮箱地址,email和md5参数必须填写其中一个。
cdn string hanada 指定的CDN地址,可选source(即不使用反向代理、CDN等)、hanada(本站提供的CDN服务)、v2ex(cdn.v2ex.com)、geekzu(sdn.geekzu.org)。
size int 80 头像的大小,单位为px,最大为512。
default string mm 若请求邮箱不存在或未设置头像时输出的默认的头像。有以下参数。
404: do not load any image if none is associated with the email hash, instead return an HTTP 404 (File Not Found) response
mm: (mystery-man) a simple, cartoon-style silhouetted outline of a person (does not vary by email hash)
identicon: a geometric pattern based on an email hash
monsterid: a generated 'monster' with different colors, faces, etc
wavatar: generated faces with differing features and backgrounds
retro: awesome generated, 8-bit arcade-style pixelated faces
blank: a transparent PNG image (border added to HTML below for demonstration purposes)
format string image 返回结果方式,若为json,则以json方式返回;若为url则直接返回头像url地址;若为image则302重定向到头像地址。

请求示例
https://api.hanada.info/gravatar/?email=im@hanada.info

返回结果
参数format为image

参数format为url

https://gravatar.hanada.info/avatar/df71be62d601ddfee21b564c74451d2f?s=80&d=mm

参数format为json

{
    "code": 200,
    "msg": "success",
    "title": "Gravatar",
    "url": "https://gravatar.hanada.info/avatar/df71be62d601ddfee21b564c74451d2f?s=80&d=mm"   //Gravatar头像地址
}

若头像不存在

{
    "code": 200,
    "msg": "error",
    "error": "No Gravatar for this email",
    "title": "Gravatar",
    "url": "https://gravatar.hanada.info/avatar/75e48a7020624657e5da6033590030ee?s=80&d=mm"
}