Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- import java.net.*;
- import java.applet.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class getGPSLocation extends Applet{
- //public class getGPSLocation{
- //public static void main(String[] args) {
- public void init(){
- String result = null;
- if (isWindows()) {
- System.out.println("\nThis is Windows Machine");
- result=getWindows();
- } else if (isMac()) {
- System.out.println("\nThis is Mac Machine");
- result=getMac();
- } else {
- System.out.println("\nYour OS is not support!!");
- }
- //System.out.println(result);
- }
- public static String getWindows(){
- String result = null;
- try {
- ArrayList ssidList = new ArrayList();
- ArrayList bssidList = new ArrayList();
- ArrayList rssiList = new ArrayList();
- Process p = Runtime.getRuntime().exec("netsh wlan show networks mode=bssid");
- BufferedReader in = new BufferedReader(
- new InputStreamReader(p.getInputStream()));
- String line = null;
- String signal = null;
- String ssidStr = null;
- while ((line = in.readLine()) != null) {
- Pattern p1 = Pattern.compile("(SSID\\s\\d+\\s:)\\s([\\w\\s]*)");
- Matcher m1 = p1.matcher(line);
- if(m1.find()){
- ssidStr = m1.group(2);
- ssidStr = ssidStr.replaceAll(" ","%20");
- ssidList.add(ssidStr);
- }
- Pattern p2 = Pattern.compile("(BSSID\\s1\\s*:)\\s((.?)*)");
- Matcher m2 = p2.matcher(line);
- if(m2.find()){
- bssidList.add(m2.group(2));
- }
- Pattern p3 = Pattern.compile("(Signal\\s*):\\s((.?)*)");
- Matcher m3 = p3.matcher(line);
- if(m3.find()){
- signal = m3.group(2);
- signal = signal.replaceAll("%","");
- signal = signal.replaceAll(" ","");
- signal = "-"+signal;
- rssiList.add(signal);
- }
- }
- int arraySize=ssidList.size();
- if(arraySize==0){
- result="I don't know where the target is";
- }
- else{
- result=googleLookup(bssidList,ssidList,rssiList);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return result;
- }
- public static String googleLookup(ArrayList bssidList,ArrayList ssidList,ArrayList rssiList){
- String result = null;
- try {
- int j=0;
- String queryString = "https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&sensor=true";
- while(j<ssidList.size()){
- queryString+="&wifi=mac:";
- queryString+=bssidList.get(j);
- queryString+="%7C";
- queryString+="ssid:";
- queryString+=ssidList.get(j);
- queryString+="%7C";
- queryString+="ss:";
- queryString+=rssiList.get(j);
- j++;
- }
- //Get geocoordinates / Longitude and Latitude
- String geoCoordinates = null;
- //System.out.println("Query string: "+queryString);
- URL url = new URL(queryString);
- URLConnection urlc = url.openConnection();
- urlc.setRequestProperty("User-Agent", "Mozilla 5.0 (Windows; U; "+ "Windows NT 5.1; en-US; rv:1.8.0.11) ");
- BufferedReader reader = new BufferedReader(new InputStreamReader(urlc.getInputStream()));
- for (String output; (output = reader.readLine()) != null;) {
- if(output.indexOf("18000.0")>0){
- result+="Location is not accurate\n";
- System.out.println("Location is not accurate");
- }
- else{
- if(output.indexOf("lat")>0){
- output = output.replace("\"lat\" : ","");
- output = output.replaceAll("^\\s+", "");
- geoCoordinates = output;
- result+="Latitude: ";
- result+=output;
- System.out.println("Latitude: "+output);
- }
- if(output.indexOf("lng")>0){
- output = output.replace("\"lng\" : ","");
- output = output.replaceAll("^\\s+", "");
- geoCoordinates += output;
- result+="Longitude: ";
- result+=output;
- System.out.println("Longitude: "+output);
- }
- }
- }
- //Reverse geocoordinates to street address
- String reverseGeo = "https://maps.googleapis.com/maps/geo?q="+geoCoordinates+"&output=json&sensor=true_or_false";
- System.out.println(reverseGeo);
- URL url1 = new URL(reverseGeo);
- URLConnection urlc1 = url1.openConnection();
- urlc1.setRequestProperty("User-Agent", "Mozilla 5.0 (Windows; U; "+ "Windows NT 5.1; en-US; rv:1.8.0.11) ");
- BufferedReader reader1 = new BufferedReader(new InputStreamReader(urlc1.getInputStream()));
- for (String output1; (output1 = reader1.readLine()) != null;) {
- if(output1.indexOf("address")>0){
- output1 = output1.replace("\"address\": ","");
- output1 = output1.replace("\",","");
- output1 = output1.replace("\"","");
- output1 = output1.replaceAll("^\\s+", "");
- result+="Address is ";
- result+=output1;
- System.out.println("Address is "+output1);
- }
- }
- String mapAddress = "http://maps.google.com/maps?q="+geoCoordinates+"+%28You+are+located+here%29&iwloc=A&hl=en";
- result+="\n"+mapAddress;
- System.out.println("\n"+mapAddress);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return result;
- }
- public static String getMac(){
- String result = null;
- try {
- Process p = Runtime.getRuntime().exec("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s");
- BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String line = null;
- String ssidStr = null;
- String signal = null;
- String queryString = "https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&sensor=true";
- ArrayList ssidList = new ArrayList();
- ArrayList bssidList = new ArrayList();
- ArrayList rssiList = new ArrayList();
- line = in.readLine();
- while ((line = in.readLine()) != null) {
- line = line.replaceAll("^\\s+", "");
- //Pattern p1 = Pattern.compile("((.?)*\\s\\w*):(\\w*:\\w*:\\w*:\\w*:\\w*)\\s((.?)*)\\s(\\d+)");
- Pattern p1 = Pattern.compile("((.?)+)\\s(..:..:..:..:..:..)\\s(-\\d*)");
- Matcher m1 = p1.matcher(line);
- if(m1.find()){
- ssidStr = m1.group(1);
- ssidStr = ssidStr.replaceAll(" ","%20");
- ssidList.add(ssidStr);
- //System.out.println("ssid: "+ssidStr);
- bssidList.add(m1.group(3));
- //System.out.println("bssid: "+m1.group(3));
- signal = m1.group(4);
- signal = signal.replaceAll(" ","");
- //System.out.println("signal: "+signal);
- rssiList.add(signal);
- }
- }
- int arraySize=ssidList.size();
- if(arraySize==0){
- result="I don't know where the target is";
- System.out.println("I don't know where the target is");
- }
- else{
- result=googleLookup(bssidList,ssidList,rssiList);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return result;
- }
- public static boolean isWindows() {
- String os = System.getProperty("os.name").toLowerCase();
- // windows
- return (os.indexOf("win") >= 0);
- }
- public static boolean isMac() {
- String os = System.getProperty("os.name").toLowerCase();
- // Mac
- return (os.indexOf("mac") >= 0);
- }
- public static boolean isLinux() {
- String os = System.getProperty("os.name").toLowerCase();
- // linux or unix
- return (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement