YYPOST群发软件 发表于 2025-9-23 08:30:15

aiwrok软件适用于安卓环境下的外网IP获取工具实例

aiwrok软件适用于安卓环境下的外网IP获取工具实例


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

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

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

/**
* 获取外网IP地址的函数
* @returns {String|null} 返回获取到的外网IP地址,如果获取失败则返回null
*/
function getExternalIP() {
    try {
      // 创建一个新的okHttp实例
      var httpIp = new okHttp();
      
      // 设置请求头
      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");
      
      // 定义获取外网IP的API地址
      var ipApiUrl = "http://ip-api.com/json";
      // 也可以使用其他提供IP查询的API,例如:
      // var ipApiUrl = "https://api.ipify.org?format=json";
      // var ipApiUrl = "http://httpbin.org/ip";
      
      // 发送GET请求获取外网IP信息
      var ipResponse = httpIp.get(ipApiUrl);
      
      // 输出原始响应(可选)
      printl("原始响应数据: ");
      printl(ipResponse);
      
      // 尝试解析JSON响应并提取IP地址
      try {
            // 解析JSON响应
            var jsonObj = JSON.parse(ipResponse);
            
            // 提取IP地址(根据不同API的响应格式调整)
            var externalIp = null;
            
            // 检查不同API可能返回的IP字段名
            if (jsonObj.ip) {
                externalIp = jsonObj.ip; // 适用于ipify.org和httpbin.org
            } else if (jsonObj.query) {
                externalIp = jsonObj.query; // 适用于ip-api.com
            } else if (jsonObj.origin) {
                externalIp = jsonObj.origin; // 某些API可能使用这个字段名
            }
            
            // 如果找到了IP地址,返回它
            if (externalIp) {
                printl("\n提取到的外网IP地址: " + externalIp);
                return externalIp;
            } else {
                // 如果无法直接从JSON中提取,尝试使用正则表达式从原始响应中提取
                var ipRegex = /((25|(2|1\d||)\d)\.?\b){4}/g;
                var match = ipResponse.match(ipRegex);
               
                if (match && match.length > 0) {
                  externalIp = match;
                  printl("\n通过正则表达式提取到的外网IP地址: " + externalIp);
                  return externalIp;
                } else {
                  printl("\n无法从响应中提取外网IP地址");
                  return null;
                }
            }
      } catch (e) {
            printl("\n解析响应数据时发生错误: " + e);
            // 发生JSON解析错误时,尝试使用正则表达式提取IP
            try {
                var ipRegex = /((25|(2|1\d||)\d)\.?\b){4}/g;
                var match = ipResponse.match(ipRegex);
               
                if (match && match.length > 0) {
                  var externalIp = match;
                  printl("通过正则表达式提取到的外网IP地址: " + externalIp);
                  return externalIp;
                } else {
                  printl("无法从响应中提取外网IP地址");
                  return null;
                }
            } catch (ee) {
                printl("使用正则表达式提取IP时也发生错误: " + ee);
                return null;
            }
      }
    } catch (exception) {
      printl("获取外网IP时发生异常: " + exception);
      return null;
    }
}

// =============================================================================
// 2. 示例用法
// =============================================================================

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

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

页: [1]
查看完整版本: aiwrok软件适用于安卓环境下的外网IP获取工具实例