注册 登录
发贴工具
查看: 2|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] AIWROK软件技术分享苹果IOS系统获取外部IP

[复制链接]

2399

主题

2447

帖子

1万

积分

积分
14598
跳转到指定楼层
楼主
AIWROK软件技术分享苹果IOS系统获取外部IP
AIWROK软件技术分享苹果IOS系统获取外部IP 群发软件发帖工具

AIWROK软件技术分享苹果IOS系统获取外部IP 群发软件发帖工具
AIWROK软件技术分享苹果IOS系统获取外部IP 群发软件发帖工具
AIWROK软件技术分享苹果IOS系统获取外部IP 群发软件发帖工具
  1. /**
  2. * AIWROK软件安卓交流QQ群711841924
  3. * 苹果内测软件QQ群648461709
  4. * 适用于苹果IOS系统里面用,可以获取外部IP
  5. */

  6. // =============================================================================
  7. // 快速获取外网IP苹果是ES6语法
  8. // =============================================================================

  9. function getExternalIPQuick() {
  10.     printl("=== 快速获取外网IP(避免SSL问题) ===");
  11.    
  12.     // 尝试使用OkHttp(首字母大写)而不是okHttp
  13.     var http = new OkHttp();
  14.    
  15.     // 设置简单的请求头
  16.     http.setHeader("User-Agent", "QuickIP/1.0");
  17.     http.setHeader("Accept", "text/plain");
  18.     http.setHeader("Connection", "close");
  19.    
  20.     // 专门针对您的网络环境选择的HTTP服务(优先可靠的服务)
  21.     var quickServices = [
  22.         {
  23.             name: "HTTPBin",
  24.             url: "http://httpbin.org/ip",
  25.             timeout: 3
  26.         },
  27.         {
  28.             name: "IPify",
  29.             url: "http://api.ipify.org",
  30.             timeout: 3
  31.         },
  32.         {
  33.             name: "MyIP",
  34.             url: "http://api.my-ip.io/ip",
  35.             timeout: 3
  36.         },
  37.         {
  38.             name: "ICanHazIP",
  39.             url: "http://ipv4.icanhazip.com",
  40.             timeout: 3
  41.         },
  42.         {
  43.             name: "AWS CheckIP",
  44.             url: "http://checkip.amazonaws.com",
  45.             timeout: 5
  46.         }
  47.     ];
  48.    
  49.     for (var i = 0; i < quickServices.length; i++) {
  50.         var service = quickServices[i];
  51.         
  52.         try {
  53.             printl("尝试服务: " + service.name + " (" + service.url + ")");
  54.             
  55.             // 设置较短的超时时间
  56.             http.setTimeout(service.timeout * 1000, service.timeout * 1000, service.timeout * 1000);
  57.             
  58.             var startTime = new Date().getTime();
  59.             var response = http.get(service.url);
  60.             var endTime = new Date().getTime();
  61.             
  62.             if (response && response.length > 0) {
  63.                 var ip = response.trim();
  64.                 var duration = endTime - startTime;
  65.                
  66.                 printl("响应时间: " + duration + "ms");
  67.                 printl("原始响应: " + ip.substring(0, 100));
  68.                
  69.                 // 特殊处理需要解析JSON的服务
  70.                 if (service.name === "HTTPBin") {
  71.                     try {
  72.                         var jsonResponse = JSON.parse(ip);
  73.                         if (jsonResponse.origin) {
  74.                             ip = jsonResponse.origin.split(',')[0].trim(); // 可能包含多个IP,取第一个
  75.                         }
  76.                     } catch (parseError) {
  77.                         printl("JSON解析失败: " + parseError);
  78.                     }
  79.                 } else if (service.name === "IPify") {
  80.                     try {
  81.                         var jsonResponse = JSON.parse(ip);
  82.                         if (jsonResponse.ip) {
  83.                             ip = jsonResponse.ip;
  84.                         }
  85.                     } catch (parseError) {
  86.                         // 如果不是JSON格式,就直接使用原始响应
  87.                         printl("非JSON响应,使用原始内容");
  88.                     }
  89.                 }
  90.                
  91.                 // 验证IP格式
  92.                 if (isValidIPQuick(ip)) {
  93.                     printl("✓ 成功获取IP: " + ip + " (耗时: " + duration + "ms)");
  94.                     printl("使用的服务: " + service.name);
  95.                     return ip;
  96.                 } else {
  97.                     printl("✗ 响应格式无效");
  98.                 }
  99.             } else {
  100.                 printl("✗ 无响应或空内容");
  101.             }
  102.             
  103.         } catch (error) {
  104.             var errorMsg = error.toString();
  105.             printl("✗ 连接失败: " + errorMsg.substring(0, 80));
  106.             
  107.             // 分析错误类型
  108.             if (errorMsg.indexOf('SSL') > -1) {
  109.                 printl("  原因: SSL握手失败");
  110.             } else if (errorMsg.indexOf('timeout') > -1) {
  111.                 printl("  原因: 连接超时");
  112.             } else if (errorMsg.indexOf('Connection reset') > -1) {
  113.                 printl("  原因: 连接被重置");
  114.             }
  115.         }
  116.         
  117.         // 短暂延迟后尝试下一个
  118.         // sleep.millisecond(300); // 注释掉可能不存在的函数
  119.     }
  120.    
  121.     printl("所有快速服务都失败了");
  122.     return null;
  123. }


  124. /**
  125. * 简化的IP验证方法
  126. */
  127. function isValidIPQuick(ip) {
  128.     if (!ip || typeof ip !== 'string') {
  129.         return false;
  130.     }
  131.    
  132.     // 清理IP字符串
  133.     ip = ip.trim().replace(/\n/g, '').replace(/\r/g, '');
  134.    
  135.     // 简单的IPv4验证
  136.     var parts = ip.split('.');
  137.     if (parts.length !== 4) {
  138.         return false;
  139.     }
  140.    
  141.     for (var i = 0; i < parts.length; i++) {
  142.         var num = parseInt(parts[i]);
  143.         if (isNaN(num) || num < 0 || num > 255) {
  144.             return false;
  145.         }
  146.     }
  147.    
  148.     return true;
  149. }

  150. /**
  151. * 检查是否为内网IP
  152. */
  153. function isPrivateIPQuick(ip) {
  154.     if (!isValidIPQuick(ip)) {
  155.         return false;
  156.     }
  157.    
  158.     // 内网IP范围检查
  159.     if (ip.indexOf('192.168.') === 0 ||
  160.         ip.indexOf('10.') === 0 ||
  161.         ip.indexOf('172.16.') === 0 ||
  162.         ip.indexOf('172.17.') === 0 ||
  163.         ip.indexOf('172.18.') === 0 ||
  164.         ip.indexOf('172.19.') === 0 ||
  165.         ip.indexOf('172.20.') === 0 ||
  166.         ip.indexOf('172.21.') === 0 ||
  167.         ip.indexOf('172.22.') === 0 ||
  168.         ip.indexOf('172.23.') === 0 ||
  169.         ip.indexOf('172.24.') === 0 ||
  170.         ip.indexOf('172.25.') === 0 ||
  171.         ip.indexOf('172.26.') === 0 ||
  172.         ip.indexOf('172.27.') === 0 ||
  173.         ip.indexOf('172.28.') === 0 ||
  174.         ip.indexOf('172.29.') === 0 ||
  175.         ip.indexOf('172.30.') === 0 ||
  176.         ip.indexOf('172.31.') === 0 ||
  177.         ip.indexOf('127.') === 0) {
  178.         return true;
  179.     }
  180.    
  181.     return false;
  182. }

  183. /**
  184. * 超级简化版本(最后手段)
  185. */
  186. function getIPUltraSimple() {
  187.     printl("=== 超级简化版本(优先ip138) ===");
  188.    
  189.     // 尝试使用OkHttp(首字母大写)而不是okHttp
  190.     var http = new OkHttp();
  191.     http.setTimeout(3000, 3000, 3000); // 极短超时
  192.    
  193.     // 尝试AWS服务
  194.     try {
  195.         printl("尝试AWS CheckIP...");
  196.         var response = http.get("http://checkip.amazonaws.com");
  197.         if (response) {
  198.             var ip = response.trim();
  199.             if (isValidIPQuick(ip)) {
  200.                 printl("✓ AWS服务成功: " + ip);
  201.                 return ip;
  202.             }
  203.         }
  204.     } catch (e) {
  205.         printl("AWS服务失败: " + e);
  206.     }
  207.    
  208.     // 备用方案
  209.     try {
  210.         printl("尝试备用服务...");
  211.         var response = http.get("http://ipecho.net/plain");
  212.         if (response) {
  213.             var ip = response.trim();
  214.             if (isValidIPQuick(ip)) {
  215.                 printl("✓ 备用服务成功: " + ip);
  216.                 return ip;
  217.             }
  218.         }
  219.     } catch (e) {
  220.         printl("备用服务也失败: " + e);
  221.     }
  222.    
  223.     return null;
  224. }

  225. // =============================================================================
  226. // 主执行程序
  227. // =============================================================================

  228. function main() {
  229.     printl("========================================");
  230.     printl("外网IP快速获取工具(SSL问题优化版)");
  231.     printl("针对您的网络环境专门优化");
  232.     printl("========================================");
  233.    
  234.     var myIP = null;
  235.    
  236.     try {
  237.         // 方法1:快速获取
  238.         printl("\n--- 方法1: 快速获取模式 ---");
  239.         myIP = getExternalIPQuick();
  240.         
  241.         if (myIP && !isPrivateIPQuick(myIP)) {
  242.             printl("\n&#127881; 成功获取您的外网IP: " + myIP);
  243.         } else {
  244.             // 方法2:超级简化版本
  245.             printl("\n--- 方法2: 超级简化模式 ---");
  246.             myIP = getIPUltraSimple();
  247.             
  248.             if (myIP && !isPrivateIPQuick(myIP)) {
  249.                 printl("\n&#127881; 成功获取您的外网IP: " + myIP);
  250.             } else {
  251.                 printl("\n❌ 获取失败");
  252.                 printl("可能原因:");
  253.                 printl("1. 网络连接存在问题");
  254.                 printl("2. 防火墙阻止所有HTTP请求");
  255.                 printl("3. 代理服务器配置问题");
  256.                 printl("4. 网络环境限制过于严格");
  257.                
  258.                 printl("\n建议:");
  259.                 printl("1. 检查网络连接状态");
  260.                 printl("2. 尝试关闭VPN或代理");
  261.                 printl("3. 切换到移动数据网络测试");
  262.                 printl("4. 联系网络管理员");
  263.             }
  264.         }
  265.         
  266.     } catch (error) {
  267.         printl("程序执行异常: " + error);
  268.     }
  269.    
  270.     printl("\n========================================");
  271.     printl("程序执行完成");
  272.     printl("========================================");
  273. }

  274. // 直接执行
  275. main();
复制代码



untoAIWROK软件安卓总结图像视觉处理[opencv]方法nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖