php:如何在curl方式下url请求域名使用指定ip地址来访问某个服务器

这篇具有很好参考价值的文章主要介绍了php:如何在curl方式下url请求域名使用指定ip地址来访问某个服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        最近遇到一个问题,就是如何在curl请求某个域名的时候,可以指定某个ip访问,因为很多时候咱们的域名对应的是集群,会有很多服务器ip,并不一定是刚好访问到你想要的服务器,那么该如何解决呢?

例如:正常情况下,假设我们这样发送请求,如何指定访问114.253.192.75这个ip服务器的内容

$url = "https://www.diekaisanyue.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //https请求,不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$content = curl_exec($ch);
echo $content;

解决方法:

1、配置/etc/host文件,加入114.253.192.75 www.diekaisanyue.com的指向,虽然可以实现效果,但是不利于维护,换一个同事操作估计还不清楚已经配置host。

2、修改在114.253.192.75服务器上部署的www.diekaisanyue.com vhost文件,单独开一个端口,例如端口8888,则我们可以直接使用114.253.192.75:8888进行访问,但是也不很方便,如果下次换一台服务器又需要开个端口配置一遍。

3、将请求url中域名改用ip方式,然后加上Host请求头信息,进行请求,这种方法好处就是什么都不用修改,也不用配置,可以直接指定你想要的ip服务器进行访问,通过header里面的host信息,进行配对服务。

$url = 'https://114.253.192.75/index.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: www.diekaisanyue.com"));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$content = curl_exec($ch);
echo $content;

4、php5.5以上版本,支持使用 CURLOPT_RESOLVE 来设置主机对应的ip地址,但是经过测试好像不起作用文章来源地址https://www.toymoban.com/news/detail-554491.html

$url = 'https://www.diekaisanyue.com/index.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RESOLVE, ["www.diekaisanyue.com:443:114.253.192.75"]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$content = curl_exec($ch);
echo $content;

到了这里,关于php:如何在curl方式下url请求域名使用指定ip地址来访问某个服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【linux】linux服务器判断域名、IP、端口、URL是否有效

    活动详情地址:话题挑战赛第2期 参赛话题地址:运维技术分享 在平时运维过程中,经常会遇到需要判断地址是否有效的情况,比如: 1、服务器是否通外网 2、第三方提供的IP、端口是否能够访问 3、对方域名是否能够访问 … 下面列举几种linux服务器常用的检测方式 ▶ 描述

    2024年02月01日
    浏览(74)
  • PHP用CURL发送Content-type为application/json的POST请求方法

    HELLO 各位伙伴,最近一直在做项目,没有及时更新。望请见谅。 今天,给大家讲一下php请求第三方接口的时候遇到的问题,大家都知道,在请求第三方接口的时候,会要求我们用post还是get来传参 一般我们传参的时候基本上都是form-data。有一些第三方为了安全或者是编码格式

    2024年02月10日
    浏览(56)
  • 互联网编程之域名IP转换及应用URL类定位和获取数据编程

    目录 需求 域名解析程序 下载功能程序 断点续传下载 编写域名解析程序(30分): 编写一个可重用的域名解析程序模块,使之能够将用户输入的域名解析为IP地址。 编写下载功能程序(40分): 使用URL类,编写一个可重用的下载程序模块,完成HTML和图像文件的下载。即用户

    2024年02月12日
    浏览(82)
  • 修改hosts文件在本地使域名解析到指定IP

    自己的某个网站一直被别人攻击上,实数无奈,除了CC开放名单以外,唯有hosts直接将域名解析到对应IP上。 # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a \\\'#\\\' symbol. # # For example: # #      102.54.94.97     rhino.acme.com          # sour

    2024年02月10日
    浏览(81)
  • 命令行工具-cURL(用于使用URL传输数据)

    使用 Postman 进行接口测试,如下图。  在 Postman 的代码段里,可以转换你需要的不同语言的代码,其中就可以转换 cURL 代码。  将此代码复制到命令行里执行,可以执行成功,请求结果和在 Postman 里执行的结果一样。 cURL 在命令行或脚本中用于传输数据。   cURL 是一个利用

    2024年02月15日
    浏览(44)
  • windows防火墙出站规则只允许访问指定域名ip,其他出站ip全部阻止的方法

    需求背景: 公司内网的windows服务器因业务需要只需访问互联网指定的域名ip,其他的因出于系统网络安全考虑需要屏蔽阻止业务无关的其他所有域名和ip的访问。 实现方案: 在windows防火墙中进行设置,如果安装其他网络防火墙会存在安全隐患,公司不允许安装私人或非法的

    2023年04月08日
    浏览(42)
  • php中识别url被篡改并阻止访问的实现方式是什么

    在 PHP 中,可以通过多种方式来识别并阻止 URL 被篡改的访问。以下是一些常见的方法: 基本身份验证:使用 PHP 的 $_SERVER[\\\'PHP_AUTH_USER\\\'] 和 $_SERVER[\\\'PHP_AUTH_PW\\\'] 变量可以实施基本的 HTTP 身份验证。在访问受保护的页面之前,可以要求用户输入用户名和密码。如果提供的凭据无效

    2024年02月10日
    浏览(38)
  • golang 发起 http 请求,获取访问域名的 ip 地址(net, httptrace)

    今天碰到了个需求,我要知道程序对外访问的 http 请求域名的 ip 地址。 直接查看 golang 的 net/http 包,发现 Response 中并没有我想要的 ip 信息。 考虑到在 OSI 七层模型中, ip 是网络层协议,而 http 是应用层协议。去翻了下 net 包,发现了基础用法。 先提一下,域名访问服务器

    2024年02月02日
    浏览(53)
  • feign自定义第三方接口;配置化Feign接口URL;调用指定IP的feign服务

    最近接手一个项目,各子工程之间通过feign调用;各服务部署在K8S上,通过nacos管理配置;由于服务部署的机器无法开放端口等原因,导致本机服务与测试环境网络端口无法互通,故需要重写feign的调用地址;个人总结的方法有以下几种: 目录  第一种:feignclient配置URL 第二种

    2024年02月04日
    浏览(66)
  • 使用curl执行Http请求

    curl(CommandLine Uniform Resource Locator或CommandLine URL),curl命令是在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。是一个利用URL语法在命令行下工作的文件传输工具。curl设计为:在无用户交互下完成工作。 curl支持的协议包括:DICT、FILE、FTP、FTPS、GOPHER、H

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包