【php】获取服务器公网ip,内网ip「建议收藏」

【php】获取服务器公网ip,内网ip「建议收藏」<?php/***CreatedbyPhpStorm.*User:zhudechao*Date:2019/3/20*Time:下午5:27*/namespacezhdcp\ip;classIp{publicfunctionget_outer(){$ch=curl_init(‘http://…

大家好,又见面了,我是你们的朋友全栈君。

<?php
/**
 * Created by PhpStorm.
 * User: zhudechao
 * Date: 2019/3/20
 * Time: 下午5:27
 */

namespace zhdcp\ip;


class Ip
{
    public function get_outer()
    {
        $ch = curl_init('http://2019.ip138.com/ic.asp');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $a  = curl_exec($ch);
        preg_match('/\[(.*)\]/', $a, $ip);
        print_r($ip[1]);
        die();
    }

    function get_inter()
    {
        $onlineip = '';
        if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $onlineip = getenv('HTTP_CLIENT_IP');
        } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $onlineip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $onlineip = getenv('REMOTE_ADDR');
        } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $onlineip = $_SERVER['REMOTE_ADDR'];
        }
        return $onlineip;
    }

    public function get_client_ip()
    {
        if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $ip = getenv('HTTP_CLIENT_IP');
        } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $ip = getenv('REMOTE_ADDR');
        } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        return preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches [0] : '';
    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146086.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java集合详解_通俗易懂java集合

    java集合详解_通俗易懂java集合ArrayDequeArrayDeque是Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。同时,ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。ArrayDeque是Deque的实现类,可以作为栈来使用,效率高于Stack;也可以作为队列来使用,效率高于LinkedList。需要注意的是,ArrayDeque不支持null值。ArrayDeque初识说明书和继承关系还是按照国际惯例,先看一下ArrayDeque的说明书,其实往往很多时候你的困

    2026年2月3日
    8
  • intelli idea激活码【最新永久激活】

    (intelli idea激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    123
  • pycharm的使用教程_gg修改器使用教程基础

    pycharm的使用教程_gg修改器使用教程基础PyCharm这款IDE功能虽然强大,但正因为它的强大,所以对于刚入手的人来说,在初期使用时会显得困难。那么,今天这篇文章我就来写一下PyCharm的基本操作,让那些刚使用的新手们能快速入手。2基本配置我们安装好PyCharm后,首先要进行一些小配置,比如主题,字体,字体颜色等。我们打开PyCharm后,点开file,找到Setting然后就会跳出Setting的窗口可以说PyC…

    2022年8月28日
    5
  • TGZ文件解压_TGZ文件

    TGZ文件解压_TGZ文件tar打包之后有用gzip压缩的文件windows系统可以用WinRAR打开Linux系统用命令tarzxvffilename.tgz解压

    2025年6月20日
    3
  • 多重排序 js「建议收藏」

    多重排序 js「建议收藏」如何做到多重排序js有一个sort排序函数,使用array.sort(function)传入排序函数就可以很做到排序array.sort((a,b)=>{returna-b;})注意一点就是返回结果决定了a和b的位置,如果返回结果<0,那么a排在b的前面返回结果=0a和b的相对位置不变返回结果>0b排在a的前面现在让你对学生成绩单进行排序,先按照学号,从小到大…

    2025年6月15日
    5
  • Swiper滑动Html5手机浏览器自适应

    Swiper滑动Html5手机浏览器自适应

    2022年1月30日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号