注册
登录
提问时间:2016/6/9 13:16:46
我在一个网站上面频繁的请求来搜索,然后这个网站将我的ip间歇性屏蔽,怎么实现突破这个IP的封锁
1楼(站大爷用户)

试试重启你的路由器换个IP
2楼(未知网友)

你这个跟网络刷投票思路基本一样,你找一些可用的代理IP,切换IP来访问。用window API 实现就可以了。复制一段代码过来了:
void ShowWeb()
{
webBrowser1.Navigate("IP地址查询--手机号码查询归属地");
}

#region 切换代理IP

[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

public void RefreshIESettings(string strProxy)
{
const int INTERNET_OPTION_PROXY = 38;
const int INTERNET_OPEN_TYPE_PROXY = 3;
Struct_INTERNET_PROXY_INFO struct_IPI;
// Filling in structure
struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);
struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");
// Allocating memory
IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));
// Converting structure to IntPtr
Marshal.StructureToPtr(struct_IPI, intptrStruct, true);
bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
}


struct Struct_INTERNET_PROXY_INFO
{
public int dwAccessType;
public IntPtr proxy;
public IntPtr proxyBypass;
}
#endregion

///
/// 更换IP访问
///

///
///
private void ChangeIP(string text
{
RefreshIESettings(text);
ShowWeb();
}

///
/// 切回本机IP
///

///
///
private void BacktoLocalIP()
{
IPAddress localIp = IPAddress.Parse("127.0.0.1");
IPEndPoint iep = new IPEndPoint(localIp, 80);
RefreshIESettings(iep.ToString());
}
3楼(站大爷用户)

这么看你的爬虫挺没节操了。

这个事情吧,你先得有很多ip地址,不清楚楼主知不知道外网ip是要钱来买的啊。你的机器配置是多网卡吗且多线都连外网了吗?你在网上租服务器了或是买vpn了没?你是想用adsl重拨拨号换ip地址效率还是太低了。其实你实际上只需要换代理IP,这种代码也很简单
立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品