我們的合作伙伴已將我們的服務器IP列入白名單,因此我們可以向他們發送帶有新客戶端數據的cURL請求,但其CRM返回Error: IP address of a connected platform is not allowed
可能是因爲這些標頭包含CloudFlare IP而不是我們的真實IP我們要求列入白名單的服務器。cURL使用CloudFlare時真實的服務器IP
有沒有辦法通過cURL請求來顯示我們真實的服務器IP?
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_INTERFACE, '1.1.1.1');
而且:
curl_setopt($curl, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: 1.1.1.1, HTTP_X_FORWARDED_FOR: 1.1.1.1"));
編輯:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://clients.domain.com/api');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec($curl);
return $res;
沒有成功嘗試這樣做他們的日誌顯示了IPv6的IP,而不是IPv4服務器IP,它看起來像這樣:2a02:7aa0:1201::xxxx:xxxx
經過一番調查後,似乎這個IPv6 IP由託管公司託管,白名單之後,所有事情都開始運作。 關於爲什麼cURL發出一些奇怪的IPv6而不是真正的服務器IPv4的任何想法?
CloudFlare是一個入站代理,所以傳出的cURL請求不會通過CloudFlare,並將從您的服務器公開IP。嘗試捲曲顯示您的IP地址的網站,看看是否符合您提供的內容。 – drew010
是否有任何公共網站可以幫助我,或者我需要自己創建一個腳本? – Ricardo
使用https://ifconfig.co/並顯示服務器IP。非常奇怪,它怎麼可能在本地主機上運行,而不是在服務器上運行(兩個IP都被列入白名單) – Ricardo