Ex: agent_type=Browser;agent_name=Opera;agent_version=9.70;os_type=Linux;os_name=Linux;os_versionName=;os_versionNumber=;os_producer=;os_producerURL=;linux_distibution=Null;agent_language=English - United States;agent_languageTag=en-us;
Utilizando essa API criei uma classe onde você passa um "User Agent em uma String" e através do método "get()" você pode pegar as propriedades (agent_type, agent_name, agent_version...).
package com.blogspot.rozolin.utils;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Map;
import java.util.TreeMap;
public class UserAgent {
private final static String URL = "http://www.useragentstring.com/?getText=all&uas=";
public final static String AGENT_TYPE = "agent_type";
public final static String AGENT_NAME = "agent_name";
public final static String AGENT_VERSION = "agent_version";
public final static String OS_TYPE = "os_type";
public final static String OS_NAME = "os_name";
public final static String OS_VERSION_NAME = "os_versionName";
public final static String OS_VERSION_NUMBER = "os_versionNumber";
public final static String OS_PRODUCER = "os_producer";
public final static String OS_PRODUCER_URL = "os_producerURL";
public final static String LINUX_DISTIBUTION = "linux_distibution";
public final static String AGENT_LANGUAGE = "agent_language";
public final static String AGENT_LANGUAGE_TAG = "agent_languageTag";
private Map<String, String> map;
private UserAgent(Map<String, String> map) {
this.map = map;
}
public static UserAgent getUserAgent(String userAgent) throws IOException {
userAgent = URLEncoder.encode(userAgent, "UTF-8");
// http://rozolin.blogspot.com/2012/03/urlutils.html
String conteudo = UrlUtils.getHtml(URL + userAgent);
String[] array = conteudo.split(";");
Map<String, String> map = new TreeMap<String, String>();
for (String s : array) {
String[] array2 = s.split("=");
if (array2.length > 1) {
map.put(array2[0], array2[1]);
}
}
return new UserAgent(map);
}
public String get(String key) {
return map.get(key);
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
for (String key : map.keySet()) {
builder.append(key + ": " + map.get(key) + "\n");
}
return builder.toString();
}
public static void main(String[] args) throws IOException {
UserAgent userAgent = UserAgent
.getUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21");
System.out.println(userAgent);
}
}
agent_name: Chrome agent_type: Browser agent_version: 19.0.1042.0 linux_distibution: Null os_name: Linux os_type: Linux
Obs: Qualquer mudança no User Agent String.Com, podera afetar o funcionamento da classe.
No comments:
Post a Comment