{"id":21,"date":"2026-03-06T11:54:37","date_gmt":"2026-03-06T03:54:37","guid":{"rendered":"https:\/\/tools.ipfoxy.com\/?page_id=21"},"modified":"2026-04-21T13:50:49","modified_gmt":"2026-04-21T05:50:49","slug":"21-2","status":"publish","type":"page","link":"https:\/\/tools.ipfoxy.com\/en\/","title":{"rendered":"\u9996\u9875"},"content":{"rendered":"\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     \u270f\ufe0f  \u914d\u7f6e\u533a \u2014 \u5728\u6b64\u5904\u4fee\u6539\u7ad9\u70b9\u6807\u9898\u3001\u5206\u7ec4\u548c\u5de5\u5177\u5361\u7247\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n\/* \u2500\u2500 \u7ad9\u70b9\u6807\u9898\u914d\u7f6e \u2500\u2500 *\/\nconst IPFX_SITE = {\n  icon:     \"wrench\",\n  name:     \"IPFOXY\",\n  nameSpan: \"\u5de5\u5177\u4e2d\u5fc3\",\n  desc:     \"\u4ee3\u7406\u8282\u70b9\u8bca\u65ad \u00b7 \u7f51\u7edc\u6d4b\u901f \u00b7 \u8fd0\u7ef4\u5de5\u5177\u96c6\u5408\",\n};\n\n\/* \u2500\u2500 \u5de5\u5177\u5206\u7ec4\u914d\u7f6e\uff08\u591a\u8bed\u8a00\uff09\u2500\u2500 *\/\nconst IPFX_GROUPS = [\n  {\n    label_i18n: {\n      zh_CN: \"\u6d4b\u901f\u5de5\u5177\",\n      en: \"Speed Test Tools\"\n    },\n    icon:  \"zap\",\n    tools: [\n      {\n        name_i18n: {\n          zh_CN: \"\u9759\u6001\u4ee3\u7406\u4e2d\u8f6c\u6d4b\u901f\",\n          en: \"Static Proxy Speed Test\"\n        },\n        sub_i18n: {\n          zh_CN: \"\u68c0\u6d4b\u9759\u6001\u4ee3\u7406\u4e2d\u8f6c\u7ebf\u8def\u8282\u70b9\u54cd\u5e94\u65f6\u95f4\",\n          en: \"Detect static proxy node response time\"\n        },\n        url:    \"https:\/\/tools.ipfoxy.com\/tools\/staticspeed\/\",\n        icon:   \"activity\",\n        tag:    \"\",\n        newTab: false,\n      },\n      {\n        name_i18n: {\n          zh_CN: \"\u52a8\u6001\u7f51\u5173\u8282\u70b9\u6d4b\u901f\",\n          en: \"Dynamic Gateway Speed Test\"\n        },\n        sub_i18n: {\n          zh_CN: \"\u68c0\u6d4b\u52a8\u6001\u4ee3\u7406\u7f51\u5173\u8282\u70b9\u54cd\u5e94\u65f6\u95f4\",\n          en: \"Detect dynamic proxy gateway node response time\"\n        },\n        url:    \"https:\/\/tools.ipfoxy.com\/tools\/dynamictest\/\",\n        icon:   \"network\",\n        tag:    \"\",\n        newTab: false,\n      },\n    ],\n  },\n  {\n    label_i18n: {\n      zh_CN: \"Sock5\u5de5\u5177\",\n      en: \"Socks5 Tools\"\n    },\n    icon:  \"server-cog\",\n    tools: [\n      {\n        name_i18n: {\n          zh_CN: \"Socks5\u4fe1\u606f\u89e3\u6790\u52a9\u624b\",\n          en: \"Socks5 Info Parser\"\n        },\n        sub_i18n: {\n          zh_CN: \"Socks5\u4fe1\u606f\u6587\u672c\u89e3\u6790\/\u8f6c\u6362\u5de5\u5177\",\n          en: \"Parse and convert Socks5 proxy information\"\n        },\n        url:    \"https:\/\/tools.ipfoxy.com\/tools\/proxyinfo\/\",\n        icon:   \"scan-line\",\n        tag:    \"\",\n        newTab: false,\n      },\n      {\n        name_i18n: {\n          zh_CN: \"Socks5\u4ee3\u7406\u4e8c\u7ef4\u7801\u751f\u6210\u5668\",\n          en: \"Socks5 QR Code Generator\"\n        },\n        sub_i18n: {\n          zh_CN: \"Socks5\u4ee3\u7406\u8f6c\u4e8c\u7ef4\u7801\u5de5\u5177\",\n          en: \"Convert Socks5 proxy to QR code\"\n        },\n        url:    \"https:\/\/tools.ipfoxy.com\/tools\/proxyqr\/\",\n        icon:   \"qr-code\",\n        tag:    \"\",\n        newTab: false,\n      },\n      {\n        name_i18n: {\n          zh_CN: \"Socks5\u4ee3\u7406\u8fde\u901a\u6027\u68c0\u6d4b\",\n          en: \"Socks5 Connectivity Check\"\n        },\n        sub_i18n: {\n          zh_CN: \"Socks5\u4ee3\u7406\u8fde\u901a\u6027\u68c0\u6d4b\u5de5\u5177\",\n          en: \"Check Socks5 proxy connectivity\"\n        },\n        url:    \"https:\/\/tools.ipfoxy.com\/tools\/proxycheck\/\",\n        icon:   \"link\",\n        tag:    \"\",\n        newTab: false,\n      },\n    ],\n  },\n  {\n    label_i18n: {\n      zh_CN: \"\u66f4\u591a\u5de5\u5177 \u6b63\u5728\u8def\u4e0a...\",\n      en: \"More Tools Coming Soon...\"\n    },\n    icon:  \"blocks\",\n    tools: [],\n  },\n];\n\nconst TAG_LABELS_I18N = {\n  new: {\n    zh_CN: \"\u65b0\u4e0a\u7ebf\",\n    en: \"New\"\n  },\n  hot: {\n    zh_CN: \"\u70ed\u95e8\",\n    en: \"Hot\"\n  },\n  beta: {\n    zh_CN: \"\u6d4b\u8bd5\u7248\",\n    en: \"Beta\"\n  }\n};\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/unpkg.com\/lucide@latest\/dist\/umd\/lucide.js\"><\/script>\n\n<style>\n.ipfx-nav {\n  --ipfx-bg:        #f5f7fa;\n  --ipfx-white:     #ffffff;\n  --ipfx-border:    #e3e8ef;\n  --ipfx-border-lo: #edf0f4;\n  --ipfx-accent:    #2563eb;\n  --ipfx-accent-lo: #eff4ff;\n  --ipfx-accent-hi: #1d4ed8;\n  --ipfx-text:      #111827;\n  --ipfx-text-2:    #374151;\n  --ipfx-text-3:    #6b7280;\n  --ipfx-text-4:    #9ca3af;\n  --ipfx-radius:    10px;\n  --ipfx-shadow-sm: 0 1px 3px rgba(0,0,0,0.07), 0 1px 2px rgba(0,0,0,0.04);\n  --ipfx-shadow:    0 4px 16px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04);\n\n  all: initial;\n  display: block;\n  box-sizing: border-box;\n  font-family: 'Inter', system-ui, -apple-system, sans-serif;\n  font-size: 14px;\n  line-height: 1.5;\n  color: var(--ipfx-text);\n  background: var(--ipfx-bg);\n  -webkit-font-smoothing: antialiased;\n  width: 100%;\n}\n\n.ipfx-nav *, .ipfx-nav *::before, .ipfx-nav *::after {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n}\n\n.ipfx-nav a {\n  color: inherit;\n  text-decoration: none;\n  background: none;\n  border: none;\n  outline: none;\n}\n.ipfx-nav p    { margin: 0; padding: 0; }\n.ipfx-nav ul   { list-style: none; margin: 0; padding: 0; }\n.ipfx-nav img  { max-width: 100%; height: auto; display: block; }\n.ipfx-nav svg  { display: inline-block; vertical-align: middle; }\n.ipfx-nav span { font-size: inherit; font-weight: inherit; color: inherit; line-height: inherit; }\n.ipfx-nav div  { line-height: inherit; }\n\n.ipfx-nav__main {\n  max-width: 1100px;\n  margin: 0 auto;\n  padding: 28px 32px 56px;\n}\n\n.ipfx-nav__section { margin-bottom: 36px; }\n.ipfx-nav__section-head {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  margin-bottom: 14px;\n}\n.ipfx-nav__section-label {\n  font-size: 0.72rem;\n  font-weight: 600;\n  letter-spacing: 0.1em;\n  text-transform: uppercase;\n  color: var(--ipfx-text-3);\n  white-space: nowrap;\n  line-height: 1;\n}\n.ipfx-nav__section-line {\n  flex: 1;\n  height: 1px;\n  background: var(--ipfx-border);\n}\n.ipfx-nav__section-head svg {\n  color: var(--ipfx-accent) !important;\n  flex-shrink: 0;\n  width: 13px;\n  height: 13px;\n}\n\n.ipfx-nav__grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n  gap: 14px;\n}\n\n.ipfx-nav__card {\n  display: flex !important;\n  align-items: flex-start;\n  gap: 14px;\n  background: var(--ipfx-white) !important;\n  border: 1px solid var(--ipfx-border) !important;\n  border-radius: var(--ipfx-radius) !important;\n  padding: 18px 18px 16px !important;\n  text-decoration: none !important;\n  color: var(--ipfx-text) !important;\n  box-shadow: var(--ipfx-shadow-sm);\n  transition: border-color 0.18s, box-shadow 0.18s, transform 0.15s;\n  cursor: pointer;\n  line-height: 1.5;\n}\n.ipfx-nav__card:hover {\n  border-color: #93c5fd !important;\n  box-shadow: 0 0 0 3px rgba(37,99,235,0.07), var(--ipfx-shadow) !important;\n  transform: translateY(-2px);\n  color: var(--ipfx-text) !important;\n  text-decoration: none !important;\n}\n.ipfx-nav__card:active { transform: translateY(0); }\n.ipfx-nav__card:visited { color: var(--ipfx-text) !important; }\n\n.ipfx-nav__card-icon {\n  width: 40px;\n  height: 40px;\n  border-radius: 9px;\n  background: var(--ipfx-accent-lo);\n  border: 1px solid #dbeafe;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  color: var(--ipfx-accent);\n  transition: background 0.18s;\n}\n.ipfx-nav__card-icon svg { color: var(--ipfx-accent) !important; width: 20px; height: 20px; }\n.ipfx-nav__card:hover .ipfx-nav__card-icon { background: #dbeafe; }\n\n.ipfx-nav__card-body { min-width: 0; flex: 1; }\n.ipfx-nav__card-name {\n  font-size: 0.9rem;\n  font-weight: 600;\n  color: var(--ipfx-text);\n  margin-bottom: 4px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  line-height: 1.3;\n}\n.ipfx-nav__card-sub {\n  font-size: 0.78rem;\n  color: var(--ipfx-text-3);\n  line-height: 1.5;\n  display: -webkit-box;\n  -webkit-line-clamp: 2;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n}\n\n.ipfx-nav__card-arrow {\n  color: var(--ipfx-text-4);\n  flex-shrink: 0;\n  margin-top: 2px;\n  transition: color 0.15s, transform 0.15s;\n  display: flex;\n  align-items: center;\n}\n.ipfx-nav__card-arrow svg { color: var(--ipfx-text-4) !important; width: 15px; height: 15px; }\n.ipfx-nav__card:hover .ipfx-nav__card-arrow svg { color: var(--ipfx-accent) !important; }\n.ipfx-nav__card:hover .ipfx-nav__card-arrow { transform: translateX(2px); }\n\n.ipfx-nav__tag {\n  display: inline-block;\n  font-size: 0.62rem !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.06em;\n  text-transform: uppercase;\n  padding: 2px 7px;\n  border-radius: 4px;\n  margin-bottom: 5px;\n  line-height: 1.6;\n}\n.ipfx-nav__tag--new  { background: #eff6ff; color: var(--ipfx-accent) !important; border: 1px solid #bfdbfe; }\n.ipfx-nav__tag--hot  { background: #fff7ed; color: #c2410c !important;            border: 1px solid #fed7aa; }\n.ipfx-nav__tag--beta { background: #fdf4ff; color: #7e22ce !important;            border: 1px solid #e9d5ff; }\n\n@media (max-width: 680px) {\n  .ipfx-nav__main    { padding: 20px 18px 48px; }\n  .ipfx-nav__grid    { grid-template-columns: 1fr; }\n}\n<\/style>\n\n<div class=\"ipfx-nav\">\n  <div class=\"ipfx-nav__main\" id=\"ipfxMain\"><\/div>\n<\/div>\n\n<script>\n(function () {\n  \/\/ \u8f6c\u4e49 HTML\n  function escapeHtml(text) {\n    if (!text) return \"\";\n    var div = document.createElement('div');\n    div.textContent = text;\n    return div.innerHTML;\n  }\n\n  \/\/ \u83b7\u53d6\u7ffb\u8bd1\n  function getTranslation(i18nObj, langCode) {\n    if (!i18nObj) return \"\";\n    if (typeof i18nObj === \"string\") return i18nObj;\n    if (typeof i18nObj === \"object\") {\n      return i18nObj[langCode] || i18nObj[\"zh_CN\"] || i18nObj[\"en\"] || \"\";\n    }\n    return \"\";\n  }\n\n  \/\/ \u83b7\u53d6\u5f53\u524d\u8bed\u8a00\n  function getCurrentLanguage() {\n    try {\n      var pathParts = window.location.pathname.split(\"\/\").filter(Boolean);\n      var firstPart = pathParts[0] || \"\";\n\n      \/\/ \u4ece IPFX_HEADER \u68c0\u67e5\n      if (typeof IPFX_HEADER !== \"undefined\" && IPFX_HEADER.languages) {\n        for (var i = 0; i < IPFX_HEADER.languages.length; i++) {\n          var prefix = IPFX_HEADER.languages[i].prefix.replace(\/^\\\/\/g, \"\");\n          if (prefix === firstPart) {\n            return IPFX_HEADER.languages[i].code;\n          }\n        }\n        return IPFX_HEADER.defaultLanguage || \"zh_CN\";\n      }\n\n      \/\/ \u5907\u7528\u5224\u65ad\n      if (firstPart === \"en\") return \"en\";\n      return \"zh_CN\";\n    } catch (e) {\n      console.error(\"Error getting current language:\", e);\n      return \"zh_CN\";\n    }\n  }\n\n  function ipfxRender() {\n    try {\n      var currentLang = getCurrentLanguage();\n      console.log(\"Current language:\", currentLang);\n\n      var main = document.getElementById(\"ipfxMain\");\n      if (!main) {\n        console.error(\"ipfxMain element not found\");\n        return;\n      }\n\n      main.innerHTML = \"\";\n\n      if (!IPFX_GROUPS || !Array.isArray(IPFX_GROUPS)) {\n        console.error(\"IPFX_GROUPS not found or is not an array\");\n        return;\n      }\n\n      IPFX_GROUPS.forEach(function (group) {\n        var section = document.createElement(\"div\");\n        section.className = \"ipfx-nav__section\";\n\n        var groupLabel = getTranslation(group.label_i18n, currentLang);\n\n        var head = document.createElement(\"div\");\n        head.className = \"ipfx-nav__section-head\";\n        head.innerHTML =\n          '<i data-lucide=\"' + (group.icon || \"zap\") + '\"><\/i>' +\n          '<span class=\"ipfx-nav__section-label\">' + escapeHtml(groupLabel) + '<\/span>' +\n          '<div class=\"ipfx-nav__section-line\"><\/div>';\n        section.appendChild(head);\n\n        var grid = document.createElement(\"div\");\n        grid.className = \"ipfx-nav__grid\";\n\n        if (group.tools && Array.isArray(group.tools)) {\n          group.tools.forEach(function (tool) {\n            var a = document.createElement(\"a\");\n            a.href = tool.url || \"#\";\n            a.className = \"ipfx-nav__card\";\n            if (tool.newTab !== false) {\n              a.target = \"_blank\";\n              a.rel = \"noopener noreferrer\";\n            }\n\n            var toolName = getTranslation(tool.name_i18n, currentLang);\n            var toolSub = getTranslation(tool.sub_i18n, currentLang);\n\n            var tagHtml = \"\";\n            if (tool.tag && TAG_LABELS_I18N[tool.tag]) {\n              var tagLabel = getTranslation(TAG_LABELS_I18N[tool.tag], currentLang);\n              tagHtml = '<div><span class=\"ipfx-nav__tag ipfx-nav__tag--' + escapeHtml(tool.tag) + '\">' +\n                escapeHtml(tagLabel) +\n                '<\/span><\/div>';\n            }\n\n            a.innerHTML =\n              '<div class=\"ipfx-nav__card-icon\"><i data-lucide=\"' + (tool.icon || \"zap\") + '\"><\/i><\/div>' +\n              '<div class=\"ipfx-nav__card-body\">' +\n                tagHtml +\n                '<div class=\"ipfx-nav__card-name\">' + escapeHtml(toolName) + '<\/div>' +\n                '<div class=\"ipfx-nav__card-sub\">' + escapeHtml(toolSub) + '<\/div>' +\n              '<\/div>' +\n              '<div class=\"ipfx-nav__card-arrow\"><i data-lucide=\"arrow-right\"><\/i><\/div>';\n\n            grid.appendChild(a);\n          });\n        }\n\n        section.appendChild(grid);\n        main.appendChild(section);\n      });\n\n      if (window.lucide) {\n        lucide.createIcons();\n      }\n    } catch (e) {\n      console.error(\"Error in ipfxRender:\", e);\n    }\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", ipfxRender);\n  } else {\n    ipfxRender();\n  }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-21","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/pages\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":25,"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/pages\/21\/revisions"}],"predecessor-version":[{"id":84,"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/pages\/21\/revisions\/84"}],"wp:attachment":[{"href":"https:\/\/tools.ipfoxy.com\/en\/wp-json\/wp\/v2\/media?parent=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}