php中用于检测一个地理IP地址是否可用的代码

复制代码 代码如下:

  /********************************************

  *

  * 函数名:curl_string ($url,$proxy)

  * 作 用:检测代理IP地址

  * 作 者:李飞麟

  * 日 期:2011-11-09

  *

  ********************************************/

  function curl_string ($url,$proxy)

  {

  $user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh- CN; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5 FirePHP/0.2.1";

  $ch = curl_init();

  curl_setopt ($ch, CURLOPT_PROXY, $proxy);

  curl_setopt ($ch, CURLOPT_URL, $url);//设置要访问的IP

  curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);//模拟用户使用的浏览器

  @curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转

  curl_setopt ( $ch, CURLOPT_TIMEOUT, 120 ); //设置超时时间

  curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer

  curl_setopt ($ch, CURLOPT_COOKIEJAR, 'c:\cookie.txt');

  curl_setopt ($ch, CURLOPT_HEADER, 1);

  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

  curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);

  curl_setopt ($ch, CURLOPT_TIMEOUT, 10);

  $result = curl_exec($ch);

  // Check if any error occured

  if( $result === false)

  {

  error_log(date("H:i:s") . ' Curl 失败: ' . curl_error($ch) ." -- ". $proxy."\n", 3, MYMEDIA.'/log/'.date('Y-m-d').'_Err.log');

  }else{

  error_log(date("H:i:s") . ' Curl 成功: ' . $proxy."\n", 3, MYMEDIA.'/log/'.date('Y-m-d').'_OK.log');

  }

  curl_close($ch);

  return $result;

  }