❶ 請問用jsp 、java 如何檢測客戶端是否使用代理訪問你的網站例如網頁代理,軟體代理等。
客戶端使用了JS進行驗證,而伺服器端會使用Java進行驗證(或者使用Struts),一般情況下普通用戶都被擋在了JS驗證,如果有惡意用戶使用網頁代理繞過了JS驗證,那麼他同樣繞不過Struts的驗證,伺服器端就會報錯,如果伺服器端報錯了就代表有人使用了網頁代理在訪問你的網站。前提是你的JS端和Java端的驗證都足夠到位
❷ java爬蟲代理如何實現
爬蟲離不開的就是代理伺服器了,如果我們不用http來爬蟲,ip不更改的情況下,是很難進行的。當我們在使用爬蟲爬取網站資料,速度快,可以不知疲倦地連續工作。但是由於爬蟲軟體在訪問網站時,行為過於頻繁,遠超人力操作速度,就很容易被網站察覺,而封掉用戶的IP。
所以,使用爬蟲軟體時,為了防止IP被封,或者IP已經被封,還想用自己的IP訪問封了自己IP的網站時,就要用到代理IP了。http能夠對我們的ip地址進行更改,這一操作能夠有效減少了網站的ip限制的影響,對爬蟲是很有幫助的。Ipidea含有240+國家地區的ip,真實住宅網路高度匿名強力保護本地信息。
❸ Java 中怎樣在程序中設置代理伺服器
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.net.Authenticator;
importjava.net.HttpURLConnection;
importjava.net.InetSocketAddress;
importjava.net.PasswordAuthentication;
importjava.net.Proxy;
importjava.net.URL;
publicclassProxyDemo2{
publicstaticvoidmain(String[]args)throwsException{
URLurl=newURL("http://www.3lai8.com");
///創建代理伺服器
InetSocketAddressaddr=newInetSocketAddress("192.168.0.254",8080);
//Proxyproxy=newProxy(Proxy.Type.SOCKS,addr);//Socket代理
Proxyproxy=newProxy(Proxy.Type.HTTP,addr);//http代理
Authenticator.setDefault(newMyAuthenticator("username","password"));//設置代理的用戶和密碼
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection(proxy);//設置代理訪問
InputStreamReaderin=newInputStreamReader(connection.getInputStream());
BufferedReaderreader=newBufferedReader(in);
while(true){
Strings=reader.readLine();
if(s!=null){
System.out.println(s);
}
}
}
{
privateStringuser="";
privateStringpassword="";
publicMyAuthenticator(Stringuser,Stringpassword){
this.user=user;
this.password=password;
}
(){
(user,password.toCharArray());
}
}
}
❹ java HttpClient設置代理的話,用戶名和密碼怎麼設置
使用代理需要導入:commons-logging-1.1.jar,httpclient-4.0-beta2.jar ,httpcore-4.1-alpha1.jar 和 commons-codec-1.4.jar架包。
在連接代理時需要使用用戶名和密碼構造UsernamePasswordCredentials對象並作為參數傳遞給HttpClient對象。
具體用法如下:
publicstaticvoidmain(Stringargs[])
{
StringBuffersb=newStringBuffer();
//創建HttpClient實例
HttpClientclient=getHttpClient();
//創建httpGet
HttpGethttpGet=newHttpGet("http://www.csdn.net");
//執行
try{
HttpResponseresponse=client.execute(httpGet);
HttpEntityentry=response.getEntity();
if(entry!=null)
{
InputStreamReaderis=newInputStreamReader(entry.getContent());
BufferedReaderbr=newBufferedReader(is);
Stringstr=null;
while((str=br.readLine())!=null)
{
sb.append(str.trim());
}
br.close();
}
}catch(ClientProtocolExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
System.out.println(sb.toString());
}
//設置代理
(){
DefaultHttpClienthttpClient=newDefaultHttpClient();
StringproxyHost="proxycn2.huawei.com";
intproxyPort=8080;
StringuserName="china\******";
Stringpassword="*******「
httpClient.getCredentialsProvider().setCredentials(
newAuthScope(proxyHost,proxyPort),
(userName,password));
HttpHostproxy=newHttpHost(proxyHost,proxyPort);
httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,proxy);
returnhttpClient;
}
❺ JAVA中如何設置代理伺服器,取消代理伺服器
在JAVA中怎麼設置代理伺服器呢,非常簡單
publicvoidsetServiceProxy(Configconfig){
this.config=config;
System.setProperty("http.proxyHost",config.getProxyHost());
System.setProperty("http.proxyPort",config.getProxyPort());
System.setProperty("https.proxyHost",config.getProxyHost());
System.setProperty("https.proxyPort",config.getProxyPort());
}
然後在每一個HttpUrlConnection請求中,設置代理伺服器用戶名和密碼,並進行Base64加密(看你代理伺服器的要求,可能因代理伺服器不同而不同),代碼如下
()throwsIOException{
Stringauthorization=config.getProxyUser()+":"
+config.getProxyPassword();
URLurl=newURL(config.getRequestUrl());
HttpURLConnectionconn=(HttpURLConnection)url.openConnection();
conn.setRequestProperty("Proxy-Authorization",
"Basic"+Base64.encodeBase64String(authorization.getBytes()));
returnconn;
}