设为首页
收藏本站
只需一步,快速开始
AIWORK版块
AIWORK
Portal
付费问答
AIWORK论坛
BBS
刷新问答
AIWORK
»
AIWORK论坛
›
AIWORK主页
›
AIWORK技术交流
›
aiwrok软件适用于安卓环境下的外网IP获取工具实例
返回列表
发新帖
aiwrok软件适用于安卓环境下的外网IP获取工具实例
QQ896757558
QQ896757558
当前离线
积分
1435
190
主题
190
回帖
1435
积分
管理员
积分
1435
发消息
显示全部楼层
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[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}/g;
var match = ipResponse.match(ipRegex);
if (match && match.length > 0) {
externalIp = match[0];
printl("\n通过正则表达式提取到的外网IP地址: " + externalIp);
return externalIp;
} else {
printl("\n无法从响应中提取外网IP地址");
return null;
}
}
} catch (e) {
printl("\n解析响应数据时发生错误: " + e);
// 发生JSON解析错误时,尝试使用正则表达式提取IP
try {
var ipRegex = /((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}/g;
var match = ipResponse.match(ipRegex);
if (match && match.length > 0) {
var externalIp = match[0];
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地址");
}
复制代码
quot
IP
外网
printl
地址
相关帖子
2025-9-5
AIWROK软件苹果系统里的事件[event]方法小结
2025-9-16
AIWROK苹果IOS线条类[Line]复杂示例
2025-10-3
AIWROK软件苹果点击开始按钮运行最简单的封装脚本例子
2025-10-7
安卓列表控件 [uiList] 方法小结
2025-10-9
苹果系统里如何使用OCR进行文本识别并执行点击操作
2025-10-10
安卓端与H5页面交互的完整实现
上一篇:
苹果系统激活模式投屏
下一篇:
安卓专用吐司toast倒计时到指定时间并显示剩余时间
发表于 2025-9-23 08:25:53
举报
回复
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
黑夜模式
快速发帖
返回列表
返回顶部