服务器绑定多IP使用PHP指定网卡(IP)访问网络

在请求API的时候,有的会有IP频率限制,这时候就需要切换IP进行访问了,以降级单个IP访问的频率
首先我们需要查看有几个网卡

[root@iZj6c4mf2wz9vj3d8pqg0nZ wwwroot]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:16:3e:01:6b:17 brd ff:ff:ff:ff:ff:ff
    inet 172.31.162.157/20 brd 172.31.175.255 scope global dynamic noprefixroute eth0
       valid_lft 315353769sec preferred_lft 315353769sec
    inet6 fe80::216:3eff:fe01:6b17/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:16:3e:06:38:b6 brd ff:ff:ff:ff:ff:ff
    inet 172.31.162.161/20 brd 172.31.175.255 scope global dynamic noprefixroute eth1
       valid_lft 315353769sec preferred_lft 315353769sec
    inet6 fe80::2980:3bca:a3ba:f2e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@iZj6c4mf2wz9vj3d8pqg0nZ wwwroot]# 

这里我们看到有三个结果,我们只用看 eth开头的就行了

eth0,eth1

//test.php
<?php
function getHtml($url,$type="eth0")
{
    $ip="47.243.48.249";
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_REFERER, 'http://weixin.sogou.com/weixin');
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
    curl_setopt($ch, CURLOPT_TIMEOUT,10);
    curl_setopt($ch, CURLOPT_MAXREDIRS,1);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    //这里指定网卡
    curl_setopt($ch,  CURLOPT_INTERFACE,$type);
    $content=curl_exec($ch);
    $code=curl_getinfo($ch,CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($code=='404'){
        return false;
    }
    return $content;
}
//这里访问的是
var_dump(getHtml("http://httpbin.org/ip","eth0"));
var_dump(getHtml("http://httpbin.org/ip","eth1"));
?>

结果如下:

[root@iZj6c4mf2wz9vj3d8pqg0nZ wwwroot]# php test.php 
string(260) "HTTP/1.1 200 OK
Date: Tue, 07 Sep 2021 13:20:10 GMT
Content-Type: application/json
Content-Length: 31
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
  "origin": "47.75.114.57"
}
"
string(261) "HTTP/1.1 200 OK
Date: Tue, 07 Sep 2021 13:20:10 GMT
Content-Type: application/json
Content-Length: 32
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
  "origin": "47.243.48.249"
}
"
[root@iZj6c4mf2wz9vj3d8pqg0nZ wwwroot]# 

可以看到已经动态切换IP了

博主:Now大牛
QQ : 201309512
发布日期:2021年9月7日21:42:15

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigNiu 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值