狗林技术

  • 首页
  • 技术分享
    • PHP
    • Go
    • Linux
    • JavaScript
    • Vue
    • 其他

Menu

  • 首页
  • 技术分享
    • PHP
    • Go
    • Linux
    • JavaScript
    • Vue
    • 其他
  • 1970.01.01遇到Undefined constant "CURL_SSLVERSION_TLSv1_2"错误
  • 1970.01.01linux防火墙操作
  • 1970.01.01linux centos系统安装php的redis扩展
  • 1970.01.01Golang实现自定义JWT生成与验证
  • 1970.01.01php项目中Nginx文件解析漏洞
  • 1970.01.01Nginx配置跨域
更多
个人简介
个人简介


职业:PHP开发,Go开发

          前端开发

现居:浙江省-杭州市

Email:1047571953@qq.com

                               

热门文章

  • git的学习过程

    git的一些常用命令

  • Go文档

    Go http://www.topgoer.com gorm https://learnku.com/docs/gorm/v2/about-mirror-image/9754 gin https://www.kancloud.cn/lhj0702/sockstack_gin/1805355

  • tp5.1用GatewayWorker做一个简单的聊天室

    tp5.1用GatewayWorker做一个简单的聊天室 , 源码文件

  • TP5.1 查询数据库中上一条和下一条记录

    ->where("id", ">", $id)->order("id", "asc")->find();<br/> ​->where('id' , '<' , $id)->order("id", "desc")->find();

联系我

    zxl77l 微信号 1047571953@qq.com QQ邮箱 1047571953 QQ号

php查询ip归属地

分类:PHP   作者:   - 发布于:2021/05/14   1253

获取ip归属地的方法

/**
 * 获取ip归属地
 * @param string $ip
 */
 方法一
function getIpAddress($ip){
    $ch = curl_init();
    $url = 'http://getipaddress.ooxl.cn/?ip='.$ip;
    //用curl发送接收数据
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //请求为https
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $location = curl_exec($ch);
    curl_close($ch);
    $location = json_decode($location);
    //返回地址+运营商
    return $location->data->pos.$location->data->isp;
}
//方法二
function getIpAddress_copy($ip){
    $ch = curl_init();
    $url = 'https://whois.pconline.com.cn/ipJson.jsp?ip='.$ip;
    //用curl发送接收数据
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //请求为https
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $location = curl_exec($ch);
    curl_close($ch);
    //转码
    $location = mb_convert_encoding($location, 'utf-8','GB2312');
    //var_dump($location);
    //截取{}中的字符串
    $location = substr($location, strlen('({')+strpos($location, '({'),(strlen($location) - strpos($location, '})'))*(-1));
    //将截取的字符串$location中的‘,’替换成‘&’   将字符串中的‘:‘替换成‘=’
    $location = str_replace('"',"",str_replace(":","=",str_replace(",","&",$location)));
    //php内置函数,将处理成类似于url参数的格式的字符串  转换成数组
    parse_str($location,$ip_location);
    return $ip_location['addr'];
}


上一篇 : 基础算法

下一篇 : PHP的常用方法

-------------本文结束感谢您的阅读-------------

首页 技术分享

湘ICP备2021006798号

Copyright © 2021 狗林技术. All Rights Reserved.

友情链接: 测试链接

大家都在搜

  • 张三
  • 李四
  • 王二

关注我

微信号