B2B网络软件

标题: aiwrok软件适用于安卓环境下的外网IP获取工具实例 [打印本页]

作者: YYPOST群发软件    时间: 2025-9-23 08:30
标题: aiwrok软件适用于安卓环境下的外网IP获取工具实例
aiwrok软件适用于安卓环境下的外网IP获取工具实例
aiwrok软件适用于安卓环境下的外网IP获取工具实例 B2B网络软件 aiwrok软件适用于安卓环境下的外网IP获取工具实例 B2B网络软件 aiwrok软件适用于安卓环境下的外网IP获取工具实例 B2B网络软件

  1. /**
  2. * 安卓获取外网IP.js
  3. * 适用于安卓环境下的外网IP获取工具
  4. * 适用本文档ES5系统安卓 JavaScript引擎Rhino
  5. */

  6. // =============================================================================
  7. // 1. 获取外网IP并提取IP地址
  8. // =============================================================================

  9. /**
  10. * 发送GET请求获取外网IP并从响应中提取出IP地址
  11. * 下面是完整的实现代码
  12. */

  13. /**
  14. * 获取外网IP地址的函数
  15. * @returns {String|null} 返回获取到的外网IP地址,如果获取失败则返回null
  16. */
  17. function getExternalIP() {
  18.     try {
  19.         // 创建一个新的okHttp实例
  20.         var httpIp = new okHttp();
  21.         
  22.         // 设置请求头
  23.         httpIp.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36");
  24.         
  25.         // 定义获取外网IP的API地址
  26.         var ipApiUrl = "http://ip-api.com/json";
  27.         // 也可以使用其他提供IP查询的API,例如:
  28.         // var ipApiUrl = "https://api.ipify.org?format=json";
  29.         // var ipApiUrl = "http://httpbin.org/ip";
  30.         
  31.         // 发送GET请求获取外网IP信息
  32.         var ipResponse = httpIp.get(ipApiUrl);
  33.         
  34.         // 输出原始响应(可选)
  35.         printl("原始响应数据: ");
  36.         printl(ipResponse);
  37.         
  38.         // 尝试解析JSON响应并提取IP地址
  39.         try {
  40.             // 解析JSON响应
  41.             var jsonObj = JSON.parse(ipResponse);
  42.             
  43.             // 提取IP地址(根据不同API的响应格式调整)
  44.             var externalIp = null;
  45.             
  46.             // 检查不同API可能返回的IP字段名
  47.             if (jsonObj.ip) {
  48.                 externalIp = jsonObj.ip; // 适用于ipify.org和httpbin.org
  49.             } else if (jsonObj.query) {
  50.                 externalIp = jsonObj.query; // 适用于ip-api.com
  51.             } else if (jsonObj.origin) {
  52.                 externalIp = jsonObj.origin; // 某些API可能使用这个字段名
  53.             }
  54.             
  55.             // 如果找到了IP地址,返回它
  56.             if (externalIp) {
  57.                 printl("\n提取到的外网IP地址: " + externalIp);
  58.                 return externalIp;
  59.             } else {
  60.                 // 如果无法直接从JSON中提取,尝试使用正则表达式从原始响应中提取
  61.                 var ipRegex = /((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}/g;
  62.                 var match = ipResponse.match(ipRegex);
  63.                
  64.                 if (match && match.length > 0) {
  65.                     externalIp = match[0];
  66.                     printl("\n通过正则表达式提取到的外网IP地址: " + externalIp);
  67.                     return externalIp;
  68.                 } else {
  69.                     printl("\n无法从响应中提取外网IP地址");
  70.                     return null;
  71.                 }
  72.             }
  73.         } catch (e) {
  74.             printl("\n解析响应数据时发生错误: " + e);
  75.             // 发生JSON解析错误时,尝试使用正则表达式提取IP
  76.             try {
  77.                 var ipRegex = /((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}/g;
  78.                 var match = ipResponse.match(ipRegex);
  79.                
  80.                 if (match && match.length > 0) {
  81.                     var externalIp = match[0];
  82.                     printl("通过正则表达式提取到的外网IP地址: " + externalIp);
  83.                     return externalIp;
  84.                 } else {
  85.                     printl("无法从响应中提取外网IP地址");
  86.                     return null;
  87.                 }
  88.             } catch (ee) {
  89.                 printl("使用正则表达式提取IP时也发生错误: " + ee);
  90.                 return null;
  91.             }
  92.         }
  93.     } catch (exception) {
  94.         printl("获取外网IP时发生异常: " + exception);
  95.         return null;
  96.     }
  97. }

  98. // =============================================================================
  99. // 2. 示例用法
  100. // =============================================================================

  101. // 调用函数获取外网IP
  102. var myExternalIp = getExternalIP();

  103. // 使用获取到的IP地址进行后续操作
  104. if (myExternalIp) {
  105.     printl("\n成功获取到外网IP,可用于后续操作: " + myExternalIp);
  106.    
  107.     // 这里可以添加使用IP地址的其他代码
  108.     // 例如:发送到服务器、记录日志等
  109. } else {
  110.     printl("\n获取外网IP失败,请检查网络连接或尝试更换API地址");
  111. }
复制代码







欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2