我正在开发PHP应用程序.我正在使用WAMP,并且我落后于公司代理.我正在使用 cntlm authenticate ntlm ntlm ntlm .我需要卷曲Google地理编码API,为了做到这一点,我使用了以下有效的设置: curl_setopt($ch,CURLOPT_PROXY, '127.0.0.1:3128'); curl_setopt($ch, CURLOPT_PROXYPORT, 3128); 我想找到一种方法来避免为卷发设置那些选项.我相信我可以使用Apache设置,但我不确定.我需要找到此解决方案的原因是: 在生产env中,将没有这样的代理(目前仅在设置了环境变量为开发设备时才使用上述选项,但仍然:它不是最好的解决方案) 如果我想使用第三方SDK(例如Facebook PHP SDK),则它们在内部使用卷曲,但它们不一定会揭示更改卷曲选项的方法(例如,Facebook SDK没有).我不想更改SDK源代码以适合我的代理 我尝试
以下是关于 proxy 的编程技术问答
我在代理服务器后面,该服务器不允许直接连接到Internet.我所有的PHP应用程序都无法连接到Internet进行更新检查等. 我该如何告诉PHP我的代理设置? 我不想在代码中输入代理设置,我希望PHP本身通过全局配置设置或类似的内容使用它. 解决方案 如果您几乎所有的Internet访问都需要代理,我更喜欢这样. //add this as the first line of the entry file may it is the index.php or config.php stream_context_set_default(['http'=>['proxy'=>'proxy-host:proxy-port']]); 代理将适用于file_get_contents,但不能curl_exec 这是一个官方文档. 其他解决方案 这取决于您的PHP应用程序如何连接到Internet. 如果使用PHP卷曲来处理最可能的情况.在这种情况
我需要一个始终更新的代理列表.我将用PHP对其进行解析,并与卷发一起使用. 但是我只需要3个国家(例如,美国,英国,意大利)代理. 我在哪里可以找到一个代理列表? 列表可以是文本文件,XML RSS feed等. 例如: usu.txt xxx.xxx.xx.xx:8880 aaa.aaa.aaa.aa:8000 bbb.bbb.bb.bbb:8080 英格兰.txt xxx.xxx.xx.xx:8880 aaa.aaa.aaa.aa:8000 bbb.bbb.bb.bbb:8080 解决方案 这几乎完全是您想要的: http://proxy-ip-list.com/download/txt-proxy-list.html 每小时刷新一次. 就像您的需求一样,您可以下载txt 美国代理列表如果您愿意的话,只能来自该国家.也每小时更新. 其他解决方案 .TXT格式中的始终更新的代理列表可在此处提供: http:/
我正在寻找一种在PHP代理页面内加载网站的完整功能副本的方法,以便能够抓住并更改其元素和样式的一部分. 我决定将这个问题发布到更相关的进化中: 实时更改任何站点可视化属性 加载外部站点并更改其可视化 我找到了cURL对加载页面的功能(例如www.google.it;对于google.com我收到了302 redirection,但我现在不会面对). 某些页面元素(例如图像徽标)未正确加载;这应该是由于对站点资源的原始相对路径.我必须在它们之前手动添加" //google.it"才能修复. 现在我还有另一个问题: 如何在网站导航中进一步发展? 当我单击任何链接时,页面将使用其"真实"目的地重新加载.我想我必须重新加载PHP并使用HREF链接属性作为URL进行加载(我可以做到). 但是提交按钮呢?我如何重定向他们的目的地? 解决方案 使用现有代理为此. 通常,您只需要找到与旧域名匹配的所有字符串并将其更改为您的URL,因此页面上的每个链接都会从
所以在我的网站(https://example.com)上,我有一个页面,可以解析最后一个api,然后从他们的akamai cdn上撤回图像,然后在页面上显示它们. 事实是所有图像仅在HTTP上提供,不支持HTTP. 例如: http://userserve-ak.last.last.last.fm/serve/64S/760302.PNG 我有一个用php编写的图像代理: 这根本不安全,我想要它,以便只有我的服务器才能使用图像代理,因此URL中的哈希可能是最好的选择? https://example.com/proxy.php?url=http://last.fm/image.jpg&hash=hashhere 我曾经想过使用:
如何拦截请求并用HttpClient将其发送到另一台服务器并在修改后返回该服务器的响应? 原始请求将包含数据和文件.我正在寻找最小的详细解决方案,直到将原始的原始物体复制为字符串.我坚持的一部分是将Request对象插入HttpClient request 以最短的方式插入(无需编写代码以稍微刻度仔细复制数据和标题)),其余(处理响应)我将管理. 解决方案 Symfony的HTTP客户端不接受HttpFoundation\Request作为提出新请求的参数. 您需要将Request对象转换为必要的参数(包括转换路径,方法,通过适当的标头等)"手动". 然后,您必须基于客户端的响应创建HttpFoundation\Response(同样,不能简单地将其发送回控制器). 根据您的特定要求,这并不是特别繁重.天真的,可能的越野车实施将是: use Symfony\Component\HttpFoundation; use Symfony\Contracts
我需要制作一个代理脚本,该脚本可以访问隐藏在登录屏幕后面的页面.我不需要代理来"模拟"登录,而应正常显示登录页面html,并且所有cookie和http get/post get/post数据都可以通过代理到服务器,因此登录应为真实. 我不需要登录/密码,我只需要访问登录后生成的页面的HTML源代码. 这里有人知道如何实现这一目标?很容易吗? 如果没有,我从哪里开始?*(我当前正在使用PHP)* 解决方案 您所说的是访问您需要身份验证的页面. 以下是必须放置的几件事: 您无法在不认证自己的情况下查看这些页面. 如果网站(您想查看的HTML代码)仅支持Web登录作为身份验证方法,则需要通过邮寄/获取(用户名,密码)来模拟登录,因为情况可能是 如果网站可以让您以其他方式验证自己(例如LDAP,Kerberos等),那么您应该这样做 关键点是,您不能先对自己进行身份验证,因此无法获得访问权限. 至于语言,它在PHP中是可行的.正如问题所暗示
我在Ubuntu机器上的/etc/环境中具有http_proxy设置.我将curlopt_noproxy定义为10177,然后做 $curl = curl_init('http://127.0.0.1:4444/wd/hub'); curl_setopt($curl, CURLOPT_NOPROXY, '127.0.0.1'); // or '*' // ... set others params and options ... curl_exec($curl); ,但这不会影响我的脚本,我会收到代理错误消息,而不是WebDriver响应.同时,使用命令行的curl --noproxy 127.0.0.1 http://127.0.0.1:4444/wd/hub使用curl --noproxy 127.0.0.1 http://127.0.0.1:4444/wd/hub效果很好. 其他env信息: curl --version curl 7.22.0 (x86_64
我在guzzle中遇到了一个问题,即在卷发时显示了一个空白页面,一切正常.我在Guzzle和Curl中使用的代码在下面. 此代码有什么问题: guzzle: use GuzzleHttp\Client; use GuzzleHttp\Exception\RequestException; require_once "vendor/autoload.php"; try { $client = new Client(); $request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org'); $response = $client->send($request, [ 'timeout' => 30, 'curl' => [ 'CURLOPT_PROXY' => '*.*.*.*', 'CURLOPT_PROXYPORT' => *,
通过PHP获取用户的IP地址的最准确方法是什么? 我已经阅读了很多关于它的问题和答案,但是大多数答案都是旧的,用户评论说这些方式不安全. 例如,查看这个问题(2011年):如何在PHP中获取客户端IP地址? 蒂姆·肯尼迪(Tim Kennedy)的答案包含建议使用以下建议: if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } ,但是当我阅读很多时,我已经看到使用X_FORWARDED_FOR是不安全的,如下注: 除非您确切知道它的作用,否则请勿使用上述代码!我有 因
最初我使用以下方面没有成功; export http_proxy=http://username@password:host:port 值得注意的是,我不会直接遇到连接错误; [root@pal ~]# sudo pear info PHP_CodeSniffer-1.2.1 No information found for `PHP_CodeSniffer-1.2.1' 解决方案 而不是使用系统的HTTP_Proxy,而是直接在Pear的配置中设置代理; pear config-set http_proxy http://username:password@yourproxy:80 其他解决方案 您的sudo用户与用户的配置不同. 如果您这样做: pear config-set http_proxy http://username:password@yourproxy:80 然后 sudo pear channel-discov
我正在编写一个基于Web的iPhone模拟器,我正在寻找一种欺骗iPhone的Safari浏览器的方法,以便在模拟器中加载的网页(IFRAME)使用移动版本.从我的理解中,我需要修改用户代理. 如何创建一个PHP代理脚本来欺骗iPhone的用户代理? 解决方案 您可以使用curl之类的库与iPhone用户代理请求页面,然后将该页面返回您的网站(请务必将相对URL扩展到绝对,并使用DomDocument). 但是,您可能会遇到边缘案例,其中CSS/JavaScript/图像通过用户代理提供不同的服务.这可能是不值得要求的.您可以通过与用户代理,然后是iPhone用户代理,执行md5_file()并查看是否不同的iPhone用户代理来限制工作.我不会打扰:p 您也可以尝试此JavaScript ... navigator.__defineGetter__('userAgent', function(){ return 'foo' // customiz
我想使用卷曲功能,但是我落后于代理,所以我得到了HTTP/1.1 407 Proxy Authentication Required错误... 这是我使用的PHP代码: $proxy_user = 'Michiel'; $proxy_pass = 'mypassword'; $proxy_url = 'myproxyurl:port'; $proxy = true; $service_url = "https://www.myapiurltocall.com"; $service_user = 'user:password:FO'; $service_pass = 'password'; $ch = curl_init($service_url); // Set proxy if necessary if ($proxy) { curl_setopt($ch, CURLOPT_PROXY, $proxy_url); curl_setopt($ch, CU
普通代理(ex:72.41.132.22:3128)与卷曲效果很好,但是当我使用袜子5代理用用户名/通行证时,它只是在页面上给我" [1"". 有没有办法将socky 5代理与卷发? $proxy = "cagsan:jw22wdw@108.61.25.223:34792"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_PROXY, $proxy); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_HEADER, 1); $curl_scraped_page = curl_exec($c
嗨,我正在创建游戏,我希望能够判断用户是否正在使用代理.如果它们比基本上在其帐户上贴上标志.我可以使它掌握标志,但所有这些,但我不确定如何判断用户是否正在使用代理.我已经看到您可以使用标题,但是我不确定要寻找哪个以及如何检查用户 任何帮助都非常感谢. 编辑 if ( $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_X_FORWARDED'] || $_SERVER['HTTP_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] || $_SERVER['HTTP_VIA'] || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554)) || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30)) { exit('Pr
所以,长话短说,我有一个使用MVC Web API作为后端的Ajax应用程序.但是,客户从其他域进行调用,并使用PHP代理文件解决跨域请求问题. 但是,使用PHP代理,Web API对A 100 Continue HTTP标头的某些请求进行响应,并且任何使此返回的请求都需要过多的时间来完成(我们最多可以交谈2分钟左右),并且可以还返回非val响应. 这个似乎是Curl 通常将解决方法称为插入以下行以删除期望:卷曲请求中的100个标头 不幸的是,该解决方案对我来说似乎难以捉摸: $headers = getallheaders(); $headers_new = ""; foreach($headers as $title => $body) { $headers_new[] = $title.": ".$body; } //$headers_new[] = 'Expect:'; curl_setopt($ch, CURLOPT_HTTPHEADER, $h
我正在尝试使用以下PHP代码连接到TOR隐藏服务: $url = 'http://jhiwjjlqpyawmpjx.onion/' $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/"); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); $output = curl_exec($ch); $curl_error = curl_error($ch); curl_close($ch); print_r($output); print_r($curl_error); 运行它时,我会收到以下错误: 无法解析主机名 但是,当我从ubuntu中的命令行
我试图弄清楚如何检测登录网站的人们是否在代理后面.我读过,您可以通过可嵌入的对象(Flash和Java)检测一个人的真实IP地址.但是,我实际上找不到任何示例或来源. 我正在使用php,我已经阅读了寻找$_SERVER['HTTP_X_FORWARDED_FOR'], $_SERVER['HTTP_CLIENT_IP']等.我读到匿名代理仍然显示HTTP_X_FORWARDED).如果可能的话,我想尝试使用Java Servlet进行.谁能向我指向正确的方向(最好使用示例?)我在ha.ckers.org上看到了一些代码,但他们只显示了客户端而不是服务器端. 解决方案 tor不提供任何服务器标头,例如x_forwarded_for,因此最好的选择是使用所有已知出口节点的列表.可以在 https://torstat.xenobite.eu/上找到一个列表. 对于其他代理,您可以查看服务器标头.感兴趣的服务器标题包括: HTTP_VIA HTTP_X_FORWARD