簡體   English   中英

我使用哪個IP地址調用外部API?

[英]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://www.php.net/manual/en/reserved.variables.server.php

通過向http://ip.appspot.com/發出HTTP請求,可以找到用於外部請求的服務器的IP地址。

PHP代碼:

<?php
echo file_get_contents('http://ip.appspot.com/');
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM