IPinfo如何使用file_get_contents显示json数据

时间:2019-02-10 20:21:20

标签: php json file-get-contents

今天,我正在使用api来获取特定IP地址的信息,并且可以正常工作。

file_get_contents("https://ipinfo.io/172.217.19.206");

从这里我得到普通的json输出,我可以json_decode

{“ ip”:“ 172.217.19.206”,“主机名”:“ ams16s31-in-f14.1e100.net”,“城市”:“”,“区域”:“”,“国家”:“美国“,” loc“:” 37.7510,-97.8220“,” org“:” AS15169 Google LLC“}

但是我不明白的是,如果我使用浏览器访问页面https://ipinfo.io/172.217.19.206,那么我根本看不到此输出。我一直以为file_get_contents获取页面的来源?

2 个答案:

答案 0 :(得分:2)

该网站使用useragent方法进行处理。

您可以通过邮递员进行测试。

仅在“标题”部分为User-Agent设置空值,并将get请求发送到该url。

Postman Example

答案 1 :(得分:1)

这在我们的文档中进行了介绍:https://ipinfo.io/developers#json-response

  

我们尝试自动检测何时有人想要调用我们的API   查看我们的网站,然后发回适当的JSON响应   比HTML。我们基于已知流行的用户代理来执行此操作   编程语言,工具和框架

还有其他一些“魔术”。如果有URL回调参数或AJAX标头,我们将始终发送JSON。

您还可以通过在网址末尾添加/json或发送Accept: application/json标头来强制JSON响应。