CURL模拟IP访问-php

阅读次数: 11,524

  • A+
所属分类:PHP PHP 建站 语言学习

限制IP访问

<?php
$client_ip = getip();
$referer = getreferer();
$allow_ip = '192.168.1.100';
$allow_referer = 'http://www.csdn.net';
if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){
    echo 'allow access';
}else{
    echo 'deny access';
}
// 获取访问者ip
function getip(){
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
        $cip = $_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $cip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }elseif(!empty($_SERVER['REMOTE_ADDR'])){
        $cip = $_SERVER['REMOTE_ADDR'];
    }else{
        $cip = '';
    }
    return $cip;
}
// 获取访问者来源
function getreferer(){
    if(isset($_SERVER['HTTP_REFERER'])){
        return $_SERVER['HTTP_REFERER'];
    }
    return '';
}
?>

CURL模拟 IP 访问

<?php
function doCurl($url, $data=array(), $header=array(), $referer='', $timeout=30){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    // 模拟来源
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    $response = curl_exec($ch);
    if($error=curl_error($ch)){
        die($error);
    }
    curl_close($ch);
    return $response;
}
// 调用
$url = 'http://www.example.com/server.php';
$data = array();
// 设置IP
$header = array(
    'CLIENT-IP: 192.168.1.100',
    'X-FORWARDED-FOR: 192.168.1.100'
);
// 设置来源
$referer = 'http://www.csdn.net/';
$response = doCurl($url, $data, $header, $referer, 5);
echo $response;
?>

模拟session访问

<?php
header("Content-Type:text/html;charser=UTF-8");

function get_curl($url, $cookie = 0, $post = 0, $referer = 0, $header = 0, $ua = 0, $nobaody = 0)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$klsf[] = "Accept:*/*";
$klsf[] = "Accept-Encoding:gzip,deflate,sdch";
$klsf[] = "Accept-Language:zh-CN,zh;q=0.8";
curl_setopt($ch, CURLOPT_HTTPHEADER, $klsf);
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
if ($header) {
curl_setopt($ch, CURLOPT_HEADER, TRUE);
}

curl_setopt($ch, CURLOPT_COOKIE, $cookie);
if ($referer) {
if ($referer == 1) {
curl_setopt($ch, CURLOPT_REFERER, "http://m.qzone.com/infocenter?g_f=");
} else {
curl_setopt($ch, CURLOPT_REFERER, $referer);
}
}
if ($ua) {
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
} else {
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 4.0.4; es-mx; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0');
}
if ($nobaody) {
curl_setopt($ch, CURLOPT_NOBODY, 1);//主要头部
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//跟随重定向
}
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($ch);
curl_close($ch);
return $ret;

} 

HTTPS中的POST请求

/* HTTPS请求 start */
    private function curl_post_https($url,$data){ // 模拟提交数据函数
        $curl = curl_init(); // 启动一个CURL会话
        curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
        curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
        curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
        curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
        $tmpInfo = curl_exec($curl); // 执行操作
        if (curl_errno($curl)) {
            echo 'Errno'.curl_error($curl);//捕抓异常
        }
        curl_close($curl); // 关闭CURL会话
        return $tmpInfo; // 返回数据,json格式
    }
    /* HTTPS请求 end */

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • Mishtil Mishtil 0

      Здравствуйте друзья!

      Грузозахватные приспособления от производителя.

      Я недавно устроился туда и хочется услышать отзыв о компании. Желательно положительный.

      изготовление и продажа грузозахватных механизмов
      Производство грузозахватных приспособлений
      грузозахватные приспособления – оборудование для производства
      Грузозахватные приспособления от производителя
      необходимое оборудование для любого производства
      Изготовление и продажа грузозахватных механизмов
      Производство грузозахватных механизмов
      приспособления грузозахватные
      Грузозахватные приспособления
      Стропы(стропа) купить
      стропы текстильные
      алюминиевые втулки
      стропа
      производство строп
      различные захваты
      стропы для грузоподъемной техники лицензия
      грузозахватные приспособления продажа
      динамические стропы
      Котлы
      Какой котел лучше?
      технические характеристики котлов
      запчасти для котлов
      котлы длительного горения
      цена пеллетных котлов
      цена напольных котлов
      котлы настенные двухконтурные цены
      водяной котел цена
      котел настенный цена
      оборудование для производства
      Заливка цинком, баббитом каната в инвентарные муфты
      Услуги трубогиба
      Услуги по резке листового металла
      Алюминиевые втулки “ВТА”
      Алюминиевые втулки
      Стропы
      Траверсы
      Захваты
      Захваты Коромысловые
      Захваты Эксцентриковые
      Захваты Вилочные
      Канаты (тросы) с наконечниками
      Чокеры трелёвочные
      Кондукторы для монтажа колонны
      Такелаж
      Котлы
      Алюминиевые втулки
      Алюминиевые втулки “ВТА”
      Концевая заделка стальных канатов
      СТБ EN 13411-3-2009
      ТУ 1811-004-24061609-2015
      EN13411-3 (DIN 3093)
      Втулки Алюминиевые “ВТА” EN13411-3 (DIN 3093)
      втулки ВТА для запрессовки каната

      Вам предоставляется консультация специалиста и делается предварительный расчет стоимости.

      Мы будем рады Вас видеть у нас на интернет ресурсе

      Увидимся!