{"id":813,"date":"2025-06-12T00:17:27","date_gmt":"2025-06-11T16:17:27","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/813.html"},"modified":"2025-06-12T00:17:27","modified_gmt":"2025-06-11T16:17:27","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-laravel-%e4%b8%ad%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e7%9a%84-ip-%e5%9c%b0%e5%9d%80","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/813.html","title":{"rendered":"\u5982\u4f55\u5728 Laravel \u4e2d\u83b7\u53d6\u7528\u6237\u7684 IP \u5730\u5740"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#33719;&#21462;&#29992;&#25143;&#30340; IP &#22320;&#22336;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#29616;&#12290;&#20197;&#19979;&#26159;&#20960;&#31181;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992; <code>Request<\/code> &#23545;&#35937;<\/h3>\n<p>Laravel &#25552;&#20379;&#20102;&#19968;&#20010;&#20415;&#25463;&#30340; <code>Request<\/code> &#23545;&#35937;&#65292;&#21487;&#20197;&#30452;&#25509;&#20174;&#35831;&#27714;&#20013;&#33719;&#21462;&#29992;&#25143; IP &#22320;&#22336;&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ &#33719;&#21462;&#24403;&#21069;&#35831;&#27714;&#30340;&#23458;&#25143;&#31471; IP &#22320;&#22336;\n$ipAddress = request()-&gt;ip();\n\n\/\/ &#36755;&#20986; IP &#22320;&#22336;\necho $ipAddress;<\/code><\/pre>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>IlluminateHttpRequest<\/code> &#31867;<\/h3>\n<p>&#22914;&#26524;&#20320;&#26356;&#21916;&#27426;&#20351;&#29992;&#31867;&#30340;&#26041;&#24335;&#26469;&#22788;&#29702;&#35831;&#27714;&#65292;&#21487;&#20197;&#36825;&#26679;&#20570;&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\n\n\/\/ &#21019;&#24314;&#19968;&#20010; Request &#23454;&#20363;\n$request = new Request();\n\n\/\/ &#33719;&#21462;&#24403;&#21069;&#35831;&#27714;&#30340;&#23458;&#25143;&#31471; IP &#22320;&#22336;\n$ipAddress = $request-&gt;ip();\n\n\/\/ &#36755;&#20986; IP &#22320;&#22336;\necho $ipAddress;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312;&#25511;&#21046;&#22120;&#20013;&#33719;&#21462;&#24182;&#36755;&#20986;&#29992;&#25143;&#30340; IP &#22320;&#22336;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    public function show(Request $request)\n    {\n        \/\/ &#33719;&#21462;&#24403;&#21069;&#35831;&#27714;&#30340;&#23458;&#25143;&#31471; IP &#22320;&#22336;\n        $ipAddress = $request-&gt;ip();\n\n        \/\/ &#36755;&#20986; IP &#22320;&#22336;\n        echo \"Your IP address is: \" . $ipAddress;\n\n        return view('user.show');\n    }\n}<\/code><\/pre>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#22312;&#24212;&#29992;&#30340;&#19981;&#21516;&#29615;&#22659;&#20013;&#33719;&#21462;&#19981;&#21516;&#30340; IP &#22320;&#22336;&#65288;&#20363;&#22914;&#24320;&#21457;&#21644;&#29983;&#20135;&#29615;&#22659;&#65289;&#65292;&#21487;&#20197;&#22312; <code>.env<\/code> &#25991;&#20214;&#20013;&#23450;&#20041;&#29615;&#22659;&#21464;&#37327;&#65292;&#24182;&#22312;&#20195;&#30721;&#20013;&#26681;&#25454;&#29615;&#22659;&#21160;&#24577;&#33719;&#21462;&#12290;<\/p>\n<pre><code class=\"language-env\">APP_ENV=production<\/code><\/pre>\n<p>&#28982;&#21518;&#22312;&#25511;&#21046;&#22120;&#20013;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass UserController extends Controller\n{\n    public function show(Request $request)\n    {\n        \/\/ &#26681;&#25454;&#29615;&#22659;&#21464;&#37327;&#33719;&#21462; IP &#22320;&#22336;\n        if (env('APP_ENV') === 'production') {\n            $ipAddress = request()-&gt;ip();\n        } else {\n            $ipAddress = '127.0.0.1'; \/\/ &#25110;&#32773;&#20854;&#20182;&#40664;&#35748;&#20540;\n        }\n\n        \/\/ &#36755;&#20986; IP &#22320;&#22336;\n        echo \"Your IP address is: \" . $ipAddress;\n\n        return view('user.show');\n    }\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#22312; Laravel &#20013;&#36731;&#26494;&#22320;&#33719;&#21462;&#29992;&#25143;&#30340; IP &#22320;&#22336;&#12290;&#36873;&#25321;&#21738;&#31181;&#26041;&#27861;&#21462;&#20915;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#21644;&#20010;&#20154;&#20559;&#22909;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Laravel &#26159;&#19968;&#20010;&#24378;&#22823;&#30340; MVC&#65288;&#27169;&#22411;-&#35270;&#22270;-&#25511;&#21046;&#22120;&#65289;&#26694;&#26550;&#65292;&#19987;&#20026; PHP &#35774;&#35745;&#65292;&#31616;&#21270;&#20102;&#20351;&#29992;&#20248;&#38597;&#19988;&#35821;&#27861;&#20016;&#23500;&#30340;&#26041;&#27861;&#24320;&#21457; Web &#24212;&#29992;&#31243;&#24207;&#30340;&#36807;&#31243;&#12290;&#23545;&#20110; Web &#24320;&#21457;&#20154;&#21592;&#26469;&#35828;&#65292;&#33719;&#21462;&#29992;&#25143;&#35775;&#38382;&#20854;&#24212;&#29992;&#31243;&#24207;&#30340; IP &#22320;&#22336;&#26159;&#19968;&#39033;&#24120;&#35265;&#30340;&#38656;&#27714;&#65292;&#36825;&#23545;&#20110;&#36319;&#36394;&#29992;&#25143;&#27963;&#21160;&#12289;&#22686;&#24378;&#23433;&#20840;&#24615;&#25514;&#26045;&#12289;&#20010;&#24615;&#21270;&#29992;&#25143;&#20307;&#39564;&#25110;&#26085;&#24535;&#35760;&#24405;&#33267;&#20851;&#37325;&#35201;&#12290;&#26412;&#25945;&#31243;&#23558;&#24102;&#20320;&#20102;&#35299;&#22312; Laravel &#20013;&#36890;&#36807;&#19981;&#21516;&#26041;&#27861;&#33719;&#21462;&#29992;&#25143; IP &#22320;&#22336;&#30340;&#21508;&#31181;&#26041;&#24335;&#65292;&#20174;&#22522;&#30784;&#21040;&#39640;&#32423;&#65292;&#21253;&#25324;&#20195;&#30721;&#31034;&#20363;&#21644;&#35299;&#37322;&#12290;<\/p><p>&#20808;&#20915;&#26465;&#20214;<\/p><p>Composer &#24050;&#20840;&#23616;&#23433;&#35013;&#12290;<\/p><p>&#22312;&#24744;&#30340;&#24320;&#21457;&#26426;&#22120;&#19978;&#24050;&#32463;&#23433;&#35013;&#20102;Laravel&#12290;<\/p><p>&#20855;&#22791;PHP&#21644;Laravel&#30340;&#22522;&#26412;&#29702;&#35299;&#12290;<\/p><h2>&#22522;&#26412;&#29992;&#27861;&#19982;&#35831;&#27714;&#23454;&#20363;<\/h2><p>&#39318;&#20808;&#65292;&#26368;&#31616;&#21333;&#30340;&#20570;&#27861;&#26159;&#20174;Laravel&#25552;&#20379;&#30340;&#35831;&#27714;&#23454;&#20363;&#20013;&#30452;&#25509;&#35775;&#38382;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#20381;&#36182;&#27880;&#20837;&#25110;&#20840;&#23616;&#26041;&#24335;&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<code>request()<\/code>&#36741;&#21161;&#20989;&#25968;&#12290;<\/p><pre><code>&lt;?php\n\nuse IlluminateHttpRequest;\n\nclass YourController extends Controller\n{\n    public function getUserIp(Request $request)\n    {\n        $ipAddress = $request-&gt;ip();\n        return response()-&gt;json(['user_ip' =&gt; $ipAddress]);\n    }\n}\n<\/code><\/pre><p>&#22312;&#36825;&#19968;&#20363;&#23376;&#20013;&#65292;<code>ip()<\/code>&#26041;&#27861;&#36820;&#22238;&#35831;&#27714;&#30340;&#21407;&#22987;IP&#22320;&#22336;&#12290;&#20320;&#21487;&#20197;&#23558;&#20854;&#28155;&#21152;&#21040;&#20219;&#20309;&#25511;&#21046;&#22120;&#24182;&#23558;&#20854;&#36335;&#30001;&#21040;&#27979;&#35797;&#30446;&#30340;&#12290;<\/p><h2>&#27491;&#22312;&#33719;&#21462;Facade&#30340;IP&#22320;&#22336;&#12290;<\/h2><p>Laravel&#30340;facade&#20026;&#24212;&#29992;&#26381;&#21153;&#23481;&#22120;&#20013;&#30340;&#21487;&#29992;&#31867;&#25552;&#20379;&#20102;&#19968;&#20010;&#38745;&#24577;&#25509;&#21475;&#12290;&#20197;&#19979;&#26159;&#20351;&#29992;&#30340;&#26041;&#27861;&#12290;<code>Request<\/code>facade to obtain the IP:<\/p><pre><code>&lt;?php\n\nuse IlluminateSupportFacadesRequest;\n\n$ipAddress = Request::ip();\n\nreturn response()-&gt;json(['user_ip' =&gt; $ipAddress]);\n<\/code><\/pre><p>&#22312;&#24037;&#20316;&#20110;&#36335;&#30001;&#25110;&#32773;&#19981;&#20381;&#36182;&#27880;&#20837;&#26102;&#65292;&#35013;&#39280;&#22120;&#29305;&#21035;&#26377;&#29992;&#12290;<\/p><h2>&#39640;&#32423;&#29992;&#27861;<\/h2><p>&#26377;&#26102;&#65292;&#29992;&#25143;&#21487;&#33021;&#20250;&#36890;&#36807;&#20195;&#29702;&#25110;&#34394;&#25311;&#31169;&#20154;&#32593;&#32476;&#65288;VPN&#65289;&#38544;&#34255;&#20854;&#30495;&#23454;IP&#22320;&#22336;&#12290;Laravel&#25552;&#20379;&#20102;&#20351;&#29992;&#20013;&#38388;&#20214;&#20449;&#20219;&#20195;&#29702;&#30340;&#21151;&#33021;&#65292;&#20174;&#32780;&#20026;&#20320;&#25552;&#20379;&#29992;&#25143;&#30340;&#23454;&#38469;IP&#22320;&#22336;&#12290;<\/p><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>TrustProxies<\/code>Laravel&#33258;&#24102;&#30340;&#20013;&#38388;&#20214;&#65292;&#20320;&#21487;&#20197;&#35774;&#32622;Laravel&#20449;&#20219;&#21738;&#20123;&#20195;&#29702;&#20197;&#22788;&#29702;&#22836;&#37096;&#20449;&#24687;&#65292;&#20363;&#22914;IP&#22320;&#22336;&#12290;&#20197;&#19979;&#26159;&#37197;&#32622;&#26041;&#27861;&#65306;<\/p><pre><code>&lt;?php\n\nnamespace AppHttpMiddleware;\n\nuse FideloperProxyTrustProxies as Middleware;\nuse IlluminateHttpRequest;\n\nclass TrustProxies extends Middleware\n{\n    protected $proxies = '*'; \/\/ Trust all proxies - you might want to narrow this down\n    protected $headers = Request::HEADER_X_FORWARDED_ALL;\n}\n<\/code><\/pre><p>&#22312;&#37197;&#32622;&#20102;&#21487;&#20449;&#20195;&#29702;&#21518;&#65292;&#24744;&#21521;&#30340;&#20219;&#20309;&#21628;&#21483;&#37117;&#23558;&#34987;&#38459;&#27490;&#12290;<code>$request-&gt;ip()<\/code>&#29616;&#22312;&#20250;&#21453;&#26144;&#29992;&#25143;&#30340;&#21407;&#22987;IP&#22320;&#22336;&#65292;&#32780;&#19981;&#26159;&#20195;&#29702;&#30340;IP&#22320;&#22336;&#12290;<\/p><h2>&#35760;&#24405;IP&#22320;&#22336;<\/h2><p>&#35760;&#24405;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#23545;&#20110;&#23457;&#35745;&#36861;&#36394;&#25110;&#23457;&#26597;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;&#29992;&#25143;&#20132;&#20114;&#38750;&#24120;&#26377;&#24110;&#21161;&#65306;<\/p><pre><code>&lt;?php\n\nuse IlluminateSupportFacadesLog;\n\nclass UserActivityController extends Controller\n{\n    public function logUserActivity(Request $request)\n    {\n        $ipAddress = $request-&gt;ip();\n        Log::info('User activity from IP: ' . $ipAddress);\n        \/\/ ... additional activity logging logic\n    }\n}\n<\/code><\/pre><p>IP&#22320;&#22336;&#19982;&#25351;&#23450;&#28040;&#24687;&#19968;&#36215;&#34987;&#35760;&#24405;&#22312;&#24744;&#30340;&#26085;&#24535;&#25991;&#20214;&#20013;&#65292;&#35813;&#25991;&#20214;&#40664;&#35748;&#20301;&#20110;&#20197;&#19979;&#20301;&#32622;&#65306;<code>storage\/logs\/laravel.log<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h2>IP&#22320;&#22336;&#39564;&#35777;<\/h2><p>&#22914;&#26524;&#20320;&#38656;&#35201;&#39564;&#35777;&#25509;&#25910;&#21040;&#30340;IP&#22320;&#22336;&#65292;Laravel&#30340;&#39564;&#35777;&#26426;&#21046;&#38750;&#24120;&#26041;&#20415;&#65306;<\/p><pre><code>&lt;?php\n\nuse IlluminateHttpRequest;\n\n$validator = Validator::make($request-&gt;all(), [\n    'ip' =&gt; 'required|ip',\n]);\n\nif ($validator-&gt;fails()) {\n    return response()-&gt;json($validator-&gt;errors(), 400);\n}\n\n$ipAddress = $request-&gt;ip;\n\/\/ Continue processing\n<\/code><\/pre><p>Laravel&#30340;<code>ip<\/code>&#39564;&#35777;&#35268;&#21017;&#26816;&#26597;&#36755;&#20837;&#26159;&#21542;&#20026;&#26377;&#25928;&#30340;IP&#22320;&#22336;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#25506;&#35752;&#20102;&#22914;&#20309;&#22312;Laravel&#20013;&#33719;&#21462;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#30340;&#21508;&#31181;&#26041;&#27861;&#12290;&#25105;&#20204;&#30740;&#31350;&#20102;&#22522;&#26412;&#30340;&#26816;&#32034;&#26041;&#27861;&#12289;&#22788;&#29702;&#29992;&#25143;&#36890;&#36807;&#20195;&#29702;&#26381;&#21153;&#22120;&#30340;&#24773;&#20917;&#12289;&#35760;&#24405;IP&#20449;&#24687;&#20197;&#21450;&#29978;&#33267;&#39564;&#35777;IP&#22320;&#22336;&#12290;&#36825;&#20123;&#25216;&#24039;&#30340;&#25972;&#21512;&#23558;&#26377;&#21161;&#20110;&#30830;&#20445;&#23545;&#29992;&#25143;&#29305;&#23450;&#25968;&#25454;&#30340;&#36866;&#24403;&#22788;&#29702;&#65292;&#20197;&#20445;&#38556;&#23433;&#20840;&#12289;&#20010;&#24615;&#21270;&#25110;&#26085;&#24535;&#30446;&#30340;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; Laravel &#20013;&#33719;&#21462;&#29992;&#25143;&#30340; IP &#22320;&#22336;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26041;&#27861;&#65306;<\/p>\n<ol>\n<li>\n<p>&#20351;&#29992; <code>IlluminateSupportFacadesHttp<\/code> &#24211;&#65306;<\/p>\n<ul>\n<li>&#39318;&#20808;&#30830;&#20445;&#24050;&#23433;&#35013;&#20102;&#36825;&#20010;&#24211;&#65292;&#21487;&#20197;&#36890;&#36807;&#36816;&#34892; <code>composer require laravel\/http<\/code> &#23433;&#35013;&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>&#20174; Laravel &#30340; HTTP &#24211;&#20013;&#23548;&#20837; Http &#31867;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; HTTP &#35831;&#27714;&#23545;&#35937;&#65292;&#24182;&#35774;&#32622;&#35831;&#27714;&#31867;&#22411;&#20026; GET&#12290;<\/p>\n<\/li>\n<li>\n<p>&#35774;&#32622;&#35831;&#27714;&#22836;&#65292;&#20363;&#22914; <code>X-Forwarded-For<\/code>&#65292;&#29992;&#20110;&#35760;&#24405;&#23458;&#25143;&#31471;&#30340;&#22810;&#20010;&#20195;&#29702;&#26381;&#21153;&#22120;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#21457;&#36865;&#35831;&#27714;&#24182;&#22788;&#29702;&#21709;&#24212;&#25968;&#25454;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#19979;&#38754;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesHttp;\n\n\/\/ &#20551;&#35774; $request &#26159;&#19968;&#20010;&#35831;&#27714;&#23454;&#20363;&#65292;&#20854;&#20013;&#21253;&#21547; $ip &#21644; $forwarded_for\n$ip = request()-&gt;ip();\n$forwarded_for = request()-&gt;header('X-Forwarded-For');\n\nif ($forwarded_for) {\n    \/\/ &#22914;&#26524;&#23384;&#22312; X-Forwarded-For &#22836;&#65292;&#25105;&#20204;&#21487;&#20197;&#23558;&#20854;&#26367;&#25442;&#20026;&#21407;&#22987; IP &#22320;&#22336;\n    $ip = str_replace($forwarded_for, $ip, $ip);\n}\n\necho \"IP &#22320;&#22336;: {$ip}\";<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#26816;&#26597;&#26159;&#21542;&#26377; <code>X-Forwarded-For<\/code> &#22836;&#65292;&#22914;&#26524;&#26377;&#30340;&#35805;&#65292;&#25105;&#20204;&#23558;&#35813;&#22836;&#20013;&#30340;&#20540;&#26367;&#25442;&#20026; <code>$ip<\/code>&#12290;&#28982;&#21518;&#25171;&#21360;&#20986;&#26368;&#32456;&#30340; IP &#22320;&#22336;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#36825;&#21482;&#26159;&#19968;&#20010;&#22522;&#26412;&#31034;&#20363;&#65292;&#23454;&#38469;&#24212;&#29992;&#20013;&#21487;&#33021;&#20250;&#26377;&#26356;&#22797;&#26434;&#30340;&#24773;&#20917;&#38656;&#35201;&#32771;&#34385;&#65292;&#27604;&#22914;&#38450;&#28779;&#22681;&#35268;&#21017;&#12289;&#22810;&#23618;&#20195;&#29702;&#31561;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#33719;&#21462;&#29992;&#25143;&#30340; IP &#22320;&#22336;&#21487;&#20197;&#36890;&#36807;&#22810;&#038;#31181..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-813","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=813"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=813"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=813"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}