Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

How to use CURLOPT_INTERFACE to make requests via multiple IP addresses

Posted on 2010-08-30
4
Medium Priority
?
3,265 Views
Last Modified: 2012-05-10
I have multiple IP's on my public CentOS box, and can make requests via all of them using PHP / cURL in the form
       
curl_setopt($ch, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");

Open in new window


However, I want to pass in the relevant IP dynamically. When I try in the form:

curl_setopt($ch, CURLOPT_INTERFACE, $currentIP);

Open in new window


Where $currentIP contains the IP address (xxx.xxx.xxx.xxx) it fails.

Any suggestions?

Thanks
0
Comment
Question by:oldmoondog
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 2

Accepted Solution

by:
Gatherer_Hade earned 750 total points
ID: 33559254
Make sure the ip address matches one that is bound to one of your network cards.  

Also, print out or otherwise inspect the value of the $currentIP variable.  I suspect it does not contain what you think it does.

0
 

Author Comment

by:oldmoondog
ID: 33559314
Hi,

Thanks for your response.
I have already printed out $currentIP value when debugging the script, and it's exactly what I expected.

When I hard code the IP into the       

curl_setopt($ch, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");

it works fine.

Therefore I concluded it must be something to do with how I'm passing the value into the curl_setopt statement.

Have tried
$currentIP
"$currentIP"
'$currentIP'

No joy.

Thanks
0
 

Author Closing Comment

by:oldmoondog
ID: 33559593
You're right! Rechecked.
Previous test was not part of complete script.
Somehow $currentIP is empty!
Thanks
0
 

Author Comment

by:oldmoondog
ID: 33560125
To clarify, even once I had confirmed that $currentIP contained the correct value, it still didn't work.
The solution that works is to define the IP as a constant each time the script is called.

eg
define("CURRENT_IP", $arrIPs[0]);
curl_setopt($ch, CURLOPT_INTERFACE, CURRENT_IP);
0

Featured Post

The Ideal Solution for Multi-Display Applications

Check out ATEN’s VS1912 12-Port DP Video Wall Media Player at InfoComm 2017. Kerri describes how easy it is to design creative video walls in asymmetric layouts and schedule detailed playlists ahead of time with its advanced scheduling feature.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
This video teaches users how to migrate an existing Wordpress website to a new domain.
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.

704 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question