{"id":1057,"date":"2025-06-12T11:36:18","date_gmt":"2025-06-12T03:36:18","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1057.html"},"modified":"2025-06-12T11:36:18","modified_gmt":"2025-06-12T03:36:18","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8symfony%e4%b8%ad%e8%8e%b7%e5%8f%96%e7%94%a8%e6%88%b7%e7%9a%84ip%e5%9c%b0%e5%9d%80","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1057.html","title":{"rendered":"\u5982\u4f55\u5728Symfony\u4e2d\u83b7\u53d6\u7528\u6237\u7684IP\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;Symfony&#26694;&#26550;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>Request<\/code>&#23545;&#35937;&#26469;&#33719;&#21462;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li><strong>&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;<\/strong>&#65306;&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;&#35831;&#27714;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ src\/Controller\/UserController.php\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass UserController extends AbstractController\n{\n    public function getUserIp(Request $request): Response\n    {\n        \/\/ &#33719;&#21462;&#29992;&#25143;IP&#22320;&#22336;\n        $ipAddress = $request-&gt;getClientIp();\n\n        \/\/ &#36820;&#22238;&#21709;&#24212;\n        return new Response(\"Your IP address is: \" . $ipAddress);\n    }\n}<\/code><\/pre>\n<ol start=\"2\">\n<li><strong>&#37197;&#32622;&#36335;&#30001;<\/strong>&#65306;&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#22312; <code>config\/routes.yaml<\/code> &#25991;&#20214;&#20013;&#37197;&#32622;&#36825;&#20010;&#25511;&#21046;&#22120;&#30340;&#36335;&#30001;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-yaml\"># config\/routes.yaml\napp_user:\n    path: \/get-ip\n    controller: AppControllerUserController::getUserIp<\/code><\/pre>\n<ol start=\"3\">\n<li><strong>&#35775;&#38382;&#36335;&#30001;<\/strong>&#65306;&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#35775;&#38382; <code>\/get-ip<\/code> &#36335;&#30001;&#26469;&#26597;&#30475;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#12290;<\/li>\n<\/ol>\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;Symfony&#20013;&#33719;&#21462;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#24182;&#36820;&#22238;&#21709;&#24212;&#12290;<\/p>\n<h4><code>src\/Controller\/UserController.php<\/code><\/h4>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppController;\n\nuse SymfonyBundleFrameworkBundleControllerAbstractController;\nuse SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpFoundationResponse;\n\nclass UserController extends AbstractController\n{\n    public function getUserIp(Request $request): Response\n    {\n        \/\/ &#33719;&#21462;&#29992;&#25143;IP&#22320;&#22336;\n        $ipAddress = $request-&gt;getClientIp();\n\n        \/\/ &#36820;&#22238;&#21709;&#24212;\n        return new Response(\"Your IP address is: \" . $ipAddress);\n    }\n}<\/code><\/pre>\n<h4><code>config\/routes.yaml<\/code><\/h4>\n<pre><code class=\"language-yaml\"># config\/routes.yaml\napp_user:\n    path: \/get-ip\n    controller: AppControllerUserController::getUserIp<\/code><\/pre>\n<h4>&#23433;&#35013;&#21644;&#36816;&#34892;&#39033;&#30446;<\/h4>\n<p>&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Symfony&#65292;&#24182;&#19988;&#39033;&#30446;&#32467;&#26500;&#27491;&#30830;&#12290;&#28982;&#21518;&#65292;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#21551;&#21160;&#24320;&#21457;&#26381;&#21153;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">php bin\/console server:run<\/code><\/pre>\n<p>&#25171;&#24320;&#27983;&#35272;&#22120;&#65292;&#35775;&#38382; <code>http:\/\/127.0.0.1:8000\/get-ip<\/code>&#65292;&#20320;&#24212;&#35813;&#20250;&#30475;&#21040;&#31867;&#20284;&#22914;&#19979;&#30340;&#21709;&#24212;&#65306;<\/p>\n<pre><code>Your IP address is: 192.168.1.100<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#20320;&#23601;&#25104;&#21151;&#22320;&#22312;Symfony&#20013;&#33719;&#21462;&#24182;&#36820;&#22238;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#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>&#22312;&#26500;&#24314;Web&#24212;&#29992;&#31243;&#24207;&#26102;&#65292;&#21487;&#33021;&#20250;&#36935;&#21040;&#38656;&#35201;&#33719;&#21462;&#29992;&#25143;IP&#22320;&#22336;&#30340;&#38656;&#27714;&#12290;&#36825;&#21487;&#20197;&#29992;&#20110;&#22810;&#31181;&#30446;&#30340;&#65292;&#21253;&#25324;&#23433;&#20840;&#25514;&#26045;&#12289;&#20998;&#26512;&#20197;&#21450;&#22320;&#29702;&#23450;&#20301;&#26381;&#21153;&#31561;&#12290;Symfony&#65292;&#19968;&#20010;&#27969;&#34892;&#30340;PHP&#26694;&#26550;&#65292;&#25552;&#20379;&#20102;&#31616;&#21333;&#19988;&#23433;&#20840;&#30340;&#26041;&#27861;&#26469;&#33719;&#21462;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#36880;&#27493;&#20171;&#32461;&#20960;&#31181;&#26041;&#27861;&#65292;&#20174;&#22522;&#26412;&#31034;&#20363;&#21040;&#26356;&#39640;&#32423;&#30340;&#22330;&#26223;&#12290;<\/p><p>&#20808;&#20915;&#26465;&#20214;<\/p><p>Symfony&#25511;&#21046;&#22120;&#21644;&#35831;&#27714;&#22788;&#29702;&#30340;&#30693;&#35782;&#12290;<\/p><p>&#24050;&#32463;&#23433;&#35013;&#20102;&#19968;&#20010;&#24037;&#20316;&#29615;&#22659;&#30340;Symfony&#12290;<\/p><p>&#22522;&#26412;&#29702;&#35299;PHP&#21644;Symfony&#26694;&#26550;&#12290;<\/p><h2>&#20351;&#29992;Request&#23545;&#35937;&#26469;&#35775;&#38382;IP&#22320;&#22336;<\/h2><p>&#26368;&#24120;&#29992;&#30340;&#26041;&#27861;&#20043;&#19968;&#26159;&#22312;Symfony&#20013;&#33719;&#21462;IP&#22320;&#22336;&#30340;&#26041;&#24335;&#26159;&#20351;&#29992;&#12290;<code>Request<\/code>HTTPFoundation&#25552;&#20379;&#30340;&#23545;&#35937;&#12290;<code>Request<\/code>&#23545;&#35937;&#25277;&#35937;&#20102;HTTP&#35831;&#27714;&#65292;&#20026;&#25105;&#20204;&#25552;&#20379;&#20102;&#35775;&#38382;&#21508;&#31181;&#35831;&#27714;&#30456;&#20851;&#25968;&#25454;&#30340;&#36884;&#24452;&#12290;<\/p><pre><code>use SymfonyComponentHttpFoundationRequest;\n\npublic function showUserIp(Request $request): Response\n{\n    $ipAddress = $request-&gt;getClientIp();\n    return new Response('User IP address is: '.$ipAddress);\n}\n<\/code><\/pre><p>&#36825;&#20010;&#21151;&#33021;&#20250;&#33719;&#21462;&#23458;&#25143;&#31471;&#30340;IP&#22320;&#22336;&#24182;&#26174;&#31034;&#20986;&#26469;&#12290;&#36825;&#31181;&#26041;&#27861;&#30456;&#24403;&#31616;&#21333;&#65292;&#20027;&#35201;&#28385;&#36275;&#22522;&#26412;&#38656;&#27714;&#12290;<\/p><h2>&#20195;&#29702;&#30340;&#32771;&#34385;&#22240;&#32032;<\/h2><p>&#24403;&#24744;&#30340;&#24212;&#29992;&#21518;&#31471;&#34987;&#20195;&#29702;&#25110;&#36127;&#36733;&#22343;&#34913;&#22120;&#26102;&#65292;&#35831;&#27714;&#21487;&#33021;&#20250;&#20197;&#20195;&#29702;&#30340;IP&#22320;&#22336;&#32780;&#19981;&#26159;&#29992;&#25143;&#30340;&#23454;&#38469;IP&#22320;&#22336;&#21576;&#29616;&#12290;Symfony&#25552;&#20379;&#20102;&#22788;&#29702;&#36825;&#31181;&#22330;&#26223;&#30340;&#26041;&#27861;&#65292;&#36890;&#36807;&#37197;&#32622;&#20449;&#20219;&#20195;&#29702;&#24182;&#20351;&#29992;&#30456;&#24212;&#30340;&#21151;&#33021;&#26469;&#35299;&#20915;&#12290;<code>setTrustedProxies()<\/code>&#26041;&#27861;&#12290;<\/p><pre><code>use SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpFoundationIpUtils;\n\n\/\/ this should be set to the IPs of your proxy\nRequest::setTrustedProxies(['192.0.0.1', '192.0.0.2'], Request::HEADER_X_FORWARDED_AWS_ELB);\n\npublic function showUserIp(Request $request): Response\n{\n    $ipAddress = $request-&gt;getClientIp();\n    return new Response('User IP address is: '.$ipAddress);\n}\n<\/code><\/pre><p>&#29616;&#22312;&#65292;&#30340;<code>getClientIp()<\/code>&#26041;&#27861;&#20250;&#36820;&#22238;&#30495;&#23454;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#12290;&#35831;&#21153;&#24517;&#27491;&#30830;&#35774;&#32622;&#24744;&#30340;&#21487;&#20449;&#20195;&#29702;&#65292;&#20197;&#30830;&#20445;&#24212;&#29992;&#30340;&#23433;&#20840;&#24615;&#12290;<\/p><h2>&#20174;&#20107;&#20214;&#30417;&#21548;&#22120;&#33719;&#21462;IP&#22320;&#22336;<\/h2><p>&#39640;&#32423;&#30340;Symfony&#24212;&#29992;&#31243;&#24207;&#21487;&#20197;&#20351;&#29992;&#20107;&#20214;&#30417;&#21548;&#22120;&#26469;&#25318;&#25130;&#35831;&#27714;&#29983;&#21629;&#21608;&#26399;&#12290;&#36890;&#36807;&#30417;&#21548;kernel&#20107;&#20214;&#65292;&#21487;&#20197;&#22312;&#20107;&#20214;&#30417;&#21548;&#22120;&#20013;&#33719;&#21462;&#23458;&#25143;&#31471;&#30340;IP&#22320;&#22336;&#12290;<\/p><pre><code>namespace AppEventListener;\n\nuse SymfonyComponentHttpKernelEventRequestEvent;\n\nclass IpListener\n{\n    public function onKernelRequest(RequestEvent $event)\n    {\n        $request = $event-&gt;getRequest();\n        $ipAddress = $request-&gt;getClientIp();\n        \/\/ Do something with the IP Address\n    }\n}\n<\/code><\/pre><p>&#20320;&#21487;&#20197;&#23558;&#20854;&#27880;&#20876;&#20026;&#26381;&#21153;&#24182;&#26631;&#35760;&#20026;&#36827;&#34892;&#20869;&#26680;&#20107;&#20214;&#30417;&#21548;&#12290;<\/p><pre><code>services:\n    AppEventListenerIpListener:\n        tags:\n            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }\n<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#33719;&#21462;Symfony&#24212;&#29992;&#20013;&#29992;&#25143;IP&#22320;&#22336;&#30340;&#36807;&#31243;&#36890;&#24120;&#26159;&#38750;&#24120;&#31616;&#21333;&#30340;&#65292;&#20294;&#38656;&#35201;&#32771;&#34385;&#24212;&#29992;&#36816;&#34892;&#30340;&#29615;&#22659;&#12290;&#26681;&#25454;&#24744;&#30340;&#24212;&#29992;&#22312;&#20309;&#31181;&#29615;&#22659;&#20013;&#36816;&#34892;&#65292;&#24744;&#36873;&#25321;&#20174;&#21738;&#37324;&#33719;&#21462;&#29992;&#25143;&#30340;IP&#22320;&#22336;&#12290;<code>Request<\/code>&#20351;&#29992;&#23545;&#35937;&#25110;&#20107;&#20214;&#30417;&#21548;&#22120;&#65292;&#20197;&#21450;&#26159;&#21542;&#38656;&#35201;&#22788;&#29702;&#20195;&#29702;&#65292;Symfony &#30340;&#32467;&#26500;&#20801;&#35768;&#24744;&#23433;&#20840;&#26377;&#25928;&#22320;&#25910;&#38598;&#25152;&#38656;&#30340;&#20449;&#24687;&#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;Symfony&#20013;&#33719;&#21462;&#29992;&#25143;IP&#22320;&#22336;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>HttpFoundation<\/code>&#27169;&#22359;&#25552;&#20379;&#30340;<code>Request<\/code>&#25509;&#21475;&#21644;<code>IpInterface<\/code>&#31867;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#23454;&#29616;&#30340;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#30340;&#39033;&#30446;&#24050;&#32463;&#23433;&#35013;&#20102;<code>symfony\/http-foundation<\/code>&#21253;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#22312;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#38656;&#35201;&#35775;&#38382;&#29992;&#25143;&#20449;&#24687;&#30340;&#22320;&#26041;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#20989;&#25968;&#26469;&#22788;&#29702;HTTP&#35831;&#27714;&#12290;&#20363;&#22914;&#65292;&#21487;&#20197;&#23450;&#20041;&#19968;&#20010;&#21517;&#20026;<code>getUserIP<\/code>&#30340;&#26041;&#27861;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">use SymfonyComponentHttpFoundationRequest;\nuse SymfonyComponentHttpKernelExceptionAccessDeniedHttpException;\n\nclass UserController extends AbstractController\n{\n    public function getUserIP(Request $request)\n    {\n        \/\/ &#33719;&#21462;&#35831;&#27714;&#23545;&#35937;\n        $request = $this-&gt;getRequest();\n\n        \/\/ &#20351;&#29992;HttpFoundation&#30340;IpInterface&#31867;&#26816;&#26597;&#26159;&#21542;&#25903;&#25345;IP&#22320;&#22336;\n        if ($request instanceof Request &amp;&amp; $request-&gt;hasHeader('X-Forwarded-For')) {\n            \/\/ &#22914;&#26524;&#23384;&#22312;X-Forwarded-For&#22836;&#65292;&#21017;&#20351;&#29992;&#35813;&#20540;&#20316;&#20026;&#23458;&#25143;&#31471;IP&#22320;&#22336;\n            $ipAddress = $request-&gt;getHeaderLine('X-Forwarded-For');\n        } else {\n            \/\/ &#21542;&#21017;&#20351;&#29992;&#21407;&#22987;&#23458;&#25143;&#31471;IP&#22320;&#22336;\n            $ipAddress = $request-&gt;getClientIp();\n        }\n\n        return $ipAddress;\n    }\n}<\/code><\/pre>\n<ol start=\"3\">\n<li>&#22312;&#35270;&#22270;&#25991;&#20214;&#65288;&#36890;&#24120;&#26159;<code>views\/user<\/code>&#30446;&#24405;&#19979;&#30340;<code>.phtml<\/code>&#25991;&#20214;&#65289;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>{{ user_ip }}<\/code>&#26631;&#31614;&#26469;&#26174;&#31034;&#29992;&#25143;IP&#22320;&#22336;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-html\">{% block content %}\n  &lt;h1&gt;{{ user_ip }}&lt;\/h1&gt;\n{% endblock %}<\/code><\/pre>\n<p>&#36825;&#20010;&#26041;&#27861;&#39318;&#20808;&#26816;&#26597;&#26159;&#21542;&#26377;<code>X-Forwarded-For<\/code>&#22836;&#37096;&#65292;&#22914;&#26524;&#26377;&#30340;&#35805;&#65292;&#23427;&#20250;&#23558;&#36825;&#20010;&#22836;&#37096;&#30340;&#20540;&#35774;&#32622;&#20026;&#23458;&#25143;&#31471;IP&#22320;&#22336;&#65307;&#22914;&#26524;&#27809;&#26377;&#65292;&#23427;&#20250;&#36820;&#22238;&#21407;&#22987;&#30340;&#23458;&#25143;&#31471;IP&#22320;&#22336;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#36825;&#31181;&#26041;&#27861;&#21482;&#33021;&#22312;Apache&#26381;&#21153;&#22120;&#19978;&#24037;&#20316;&#65292;&#22240;&#20026;<code>X-Forwarded-For<\/code>&#22836;&#37096;&#26159;&#36890;&#36807;Apache&#25193;&#23637;&#25552;&#20379;&#30340;&#12290;&#22914;&#26524;&#20320;&#20351;&#29992;&#30340;&#26159;Nginx&#25110;&#32773;&#20854;&#20182;&#26381;&#21153;&#22120;&#65292;&#20320;&#38656;&#35201;&#33258;&#24049;&#23454;&#29616;&#31867;&#20284;&#30340;&#21151;&#33021;&#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;Symfony&#26694;&#26550;&#20013;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Request&#23545;&#35937;&#26469;&#33719;&#038;#2146..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1057","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"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\/1057","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=1057"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1057"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1057"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}