2010-03-11 18 views
32

İki farklı IP'ye sahip bir sunucum var. İlk IP'den ve hatta ikincisinden garip kıvrılma istekleri göndermem gerekiyor. Giden IP adresini nasıl seçebilirim? Ben bunu nasılCurl isteği için giden ip seçin

$curlh = curl_init($url); 
curl_setopt($curlh, CURLOPT_USERAGENT, $uagent); 
curl_setopt($curlh, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($curlh); 

:

Benim PHP komut dosyası böyle bir şeydir?

cevap

48

Sen CURLOPT_INTERFACE seçeneğini ayarlayarak deneyebilirsiniz:

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

CURLOPT_INTERFACE: Giden ağ arayüzünün adı kullanmak. Bu bir arayüz adı, bir IP adresi veya bir ana bilgisayar adı olabilir. php Manual: curl_setopt


DÜZENLEME: Nereden

@Michael Hart pointed out olarak Tespit Örneğin, diğer yanıtında dikkat çekti.

24

Henüz cevap veremediğimden, sadece Daniel Vassallo'nun cevabını eklemek istedim. Doğru olduğu halde, onun örneği değildir.

CURLOPT_INTERFACE bir sabittir ve tırnak içine alınamaz. Bu, yalnızca işe yaramayacağını öğrenmek için kopyalayıp yapıştırabilen bazı kişiler için biraz kafa karışıklığına neden olabilir. , Seni IP'yi kullanmak zorunda kalmamasıdır işaret gibi hissediyorum Linux sistemler için de

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

, (ve bunu alışkanlık tam olarak aynı olması, Windows eminim ama): doğru kod olacaktır adres. EthN arayüzünü biliyorsanız, ağınızın nasıl yapılandırıldığına bağlı olarak sadece "eth0", "eth1" veya "eth0: 0" kullanabilirsiniz. Bu, kod 1 makineye özgü olmayacağından ve daha geniş bir yapılandırmaya (örneğin kümeler) sığabileceğinden, bu daha çok tercih edilebilir.