无意间翻到去年我刚做网站时在抖音评论区装的一个逼:
也不是什么行业秘密啦,所有的软件、大网站(京东淘宝抖音等等)都有记录访客IP的日志,运维人员在系统受到非法攻击时会查询日志来定位攻击来源。在此我将如何装这个逼分享给你们~
第一步 - 获取访客IP
我们通过百度的本机IP查询功能可以查到自己的IP,例如我的公网IP是下图的112.20.xxx.xxx
(IP分公网Ip例如112.20.1.2和私网IP例如 192.168.0.105,只有公网Ip可以定位到人。
为什么?:公网Ip就好像是’江苏省南京市玄武区桃园小区‘,私网IP就是’第1栋楼2单元304室‘,私网IP可以重复,但公网IP是唯一的,我说我家在第1栋楼2单元304室,朋友找不到我家,但我说我家在江苏省南京市玄武区桃园小区,朋友就能找到了。)
但是如何让用户访问我的网页或者一打开app就获取到访客的IP呢:
-
方法一:通过第三方的api接口查询访客的IP(推荐)。有些第三方的api接口会返回访客的IP,例如
https://api.vvhan.com/api/visitor.info
所以我们网站开发者有以下代码:
<!-- index.html,用户一打开网页或app就执行下述代码 --> <script src="https://cdn.bootcdn.net/ajax/libs/axios/1.3.4/axios.min.js"></script> <script> async function getIP() { let result = await axios({ url: 'https://api.vvhan.com/api/visitor.info' }); console.log(result); let ip = result.data.ip; // 拿到了网页访问者的IP axios({ // 前端网页负责将访问者的IP提交到服务器后台 url: 'https://www.ink0.cn/uer_ip_log.php', // 这串url更换成你自己的网站后台 method: 'post', data: { ip: ip } }); } getIP(); </script>
// uer_ip_log.php,后台负责将访问者IP记录到日志中 $ip = $_POST['ip'] ?? null; if ($ip != null) { $conn = new PDO("mysql:host=1.2.3.4;dbname=a;port=3306;charset=utf8", '数据库用户名', '数据库密码'); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); try { $sql = <<<EOL insert into ...; 这是段将用户IP插入到数据库日志表的mysql代码,不详述,自行建表 EOL; $conn->exec($sql); echo '{"code":"0", "msg":"登记成功!"}'; } catch (PDOException $e) { echo '{"code":"1", "msg":"登记失败!"}'; } }
-
方法二:自行写代码获取访客IP,例如如下PHP代码:
function getIP() { static $realip; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP"])) { $realip = $_SERVER["HTTP_CLIENT_IP"]; } else { $realip = $_SERVER["REMOTE_ADDR"]; } } else { if (getenv("HTTP_X_FORWARDED_FOR")){ $realip = getenv("HTTP_X_FORWARDED_FOR"); } else if (getenv("HTTP_CLIENT_IP")) { $realip = getenv("HTTP_CLIENT_IP"); } else { $realip = getenv("REMOTE_ADDR"); } } return $realip; }
第二步 - IP转地理位置(社工手段)
用个真实的案例吧,以前有个不知名的访客,访问了我的网站,留下了ip地址是171.115.119.40
(已征得当事人同意),我们借助某些公司的IP查询服务,(有很多)例如
查到了这个人地处湖北省恩施土家族苗族自治州恩施市叶挺路276号。经纬度是109.482115,30.264736
我们还可以借助,通过可视化地图的方式更直观的查到这个人在恩施三多城市客栈附近:
误差:上文提到公网Ip就好像是’江苏省南京市玄武区桃园小区‘,自然不能更精确定位到具体在哪栋楼哪单元哪室。这个人在恩施三多城市客栈附近,根据我个人的经验,误差一般在1~15km,也就是以恩施三多城市客栈为中心,方圆15km之内。此外,ip有时可能会变动归属地,所以最好是新鲜获得的IP,定位才准
番外:我大学时的云南室友说自己参加培训,他同学把别人网站给黑了,删掉了网站。结果后面被网站站长打电话来,威胁那个同学说”我查到你的手机号、姓名、地址、家庭情况等信息,再搞事情我弄你“,然后那同学就学乖了。如你所见,有手段查的更细,科技成就梦想。但是呢,像这种这么精细的定位,不仅要有技术,肯定还是有代价的,就是要花钱啦,比如像开房记录这种,价格在¥500~1000每次这样子,所以也可放心,不是深仇大恨,没人会平白无故查你的。
共有 0 条评论