当我们在日常应用HTTP代理的时候,终端IP不固定的情况下,或者需要多机器同时使用HTTP代理时,就会遇到一个问题:如何使用带有用户名密码认证的HTTP(S)代理?
按照下列步骤,能轻松解决这一问题!
1.用户帐密
用户名是AuthKey,密码AuthPwd,用户名和密码都可以在用户中心的业务列表中查看;
2.授权错误提示
代理的用户名密码认证协议一般采用标准的“HTTP Basic Authentication”。如果用户认证错误,系统会返回“407 Proxy Authentication Required”;
3.请求协议头
如果代码的HTTP请求方法不支持以用户名密码的形式设置身份认证信息,则需要手动为每个HTTP请求增加Proxy-Authorization协议头,其值为“Basic”;
其中【用户名】和【密】通过 : 拼接后,再经由“BASE64”编码得到的字符串。
4.参考案例
(1)在浏览器中使用代理(以IE浏览器为例)
打开IE浏览器,依次点击打开【菜单】->【工具】->【Internet 选项】->【连接】->【局域网设置】,勾选【为 LAN 使用代理服务器】。如下图所示:
输入HTTP代理和端口,然后打开任意网站,会出现【Windows 安】窗口(如下图示),输入代 理的用户名和密码,勾选【记住我的凭据】确定即可;
(2)在 Python中使用代理
import urllib2
#设置你的HTTP代理包含用户名密码
proxy='账号:密码@ip:port'
#你要访问的网址
url = 'ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名'
opener = urllib2.build_opener()
if url.lower().startswith('https://'):
opener.add_handler(urllib2.ProxyHandler({'https' : proxy}))
else:
opener.add_handler(urllib2.ProxyHandler({'http' : proxy}))
request = urllib2.Request(url)
response = opener.open(request)
content = response.read()
(3)在PHP中使用代理
function curlFile($url, $proxy_ip, $proxy_port, $loginpassw)
{
//$loginpassw = '账号:密码';
//$proxy_ip = 'ip';
//$proxy_port = 'port';
//$url = 'ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'http');
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
(4)在C#中使用代理
using System.Net;
namespace ProxyTest
{
class Program
{
static void Main(string[] args)
{
WebClient wc = new WebClient();
wc.Proxy = new WebProxy("ip", port);
wc.Proxy.Credentials = new NetworkCredential("帐号", "密码");
string text = wc.DownloadString("ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名");
Console.WriteLine(text);
}
}
}
(5)在 VC Win32 Wininet 库中使用代理
#include
#include
#include
#pragma comment(lib, "wininet.lib")
int main(int argc, char *argv[], char *env[])
{
char url[] = "ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名";
char proxyinfo[] = "ip:port";
char usernm[] = "帐号";
char passwd[] = "密码";
char text[8192] = {};
DWORD dwReadSize = 0;
BOOL bOK = FALSE;
HINTERNET hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PROXY, proxyinfo, NULL, 0);
HINTERNET hUrl = InternetOpenUrl(hInternet, url, NULL, 0, 0, NULL);
bOK = InternetSetOption(hUrl, INTERNET_OPTION_PROXY_USERNAME, usernm,
strlen(usernm));
bOK = InternetSetOption(hUrl, INTERNET_OPTION_PROXY_PASSWORD, passwd,
strlen(passwd));
bOK = (BOOL)InternetReadFile(hUrl, text, sizeof(text), &dwReadSize);
printf(text);
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)