[英]Which IP address am I using to call an external API?
我有一個PHP腳本,可用於使用Google Geocode API對地址進行地理編碼。 這在我的測試服務器上運行良好。 我使用網址
https://maps.googleapis.com/maps/api/geocode/json?key=SECRET&address=ADDRESS&sensor=false
但是,當部署到生產服務器時,我收到此錯誤消息:
{ "error_message" : "This IP, site or mobile application is not authorized to use this API key.", "results" : [], "status" : "REQUEST_DENIED" }
該服務器具有多個IP地址,並且我不知道IP范圍或所有IP地址,因此,我無法在Google的API控制台中添加它們。 它不是服務器的公共IP地址 。
那么,如何找出生產服務器用來調用API的IP地址?
我找到了解決該問題的方法,但是它並不能真正回答我原來的問題,我將繼續公開。
根據一些隱藏的Google API文檔 ,可以添加userIp
參數。
所以我成功使用了通話
https://maps.googleapis.com/maps/api/geocode/json?key=SECRET&address=ADDRESS&sensor=false&userIp=11.22.33.44
IP地址是允許的IP地址之一。
可以從$_SERVER['SERVER_ADDR']
檢索服務器的IP地址。
看到錯誤消息后,您可以嘗試通過電子郵件將服務器的IP地址發送給自己。
更多信息:
通過向http://ip.appspot.com/發出HTTP請求,可以找到用於外部請求的服務器的IP地址。
PHP代碼:
<?php
echo file_get_contents('http://ip.appspot.com/');
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.