Android 判断是否有外网连接

有时候我们连接上一个没有外网连接的WiFi或者有线就会出现这种极端的情况,目前Android SDK还不能识别这种情况,一般的解决办法就是ping一个外网。

方案:

/**
	 * @author suncat
	 * @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网)
	 * @return
	 */
	public static final boolean ping() {

        String result = null;
        try {
                String ip = "www.baidu.com";// ping 的地址,可以换成任何一种可靠的外网
                Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping网址3次
                // 读取ping的内容,可以不加
                InputStream input = p.getInputStream();
                BufferedReader in = new BufferedReader(new InputStreamReader(input));
                StringBuffer stringBuffer = new StringBuffer();
                String content = "";
                while ((content = in.readLine()) != null) {
                        stringBuffer.append(content);
                }
                Log.d("------ping-----", "result content : " + stringBuffer.toString());
                // ping的状态
                int status = p.waitFor();
                if (status == 0) {
                        result = "success";
                        return true;
                } else {
                        result = "failed";
                }
        } catch (IOException e) {
                result = "IOException";
        } catch (InterruptedException e) {
                result = "InterruptedException";
        } finally {
                Log.d("----result---", "result = " + result);
        }
        return false;
}
时间: 2024-11-05 17:41:50

Android 判断是否有外网连接的相关文章

内网渗透技巧:判断机器真实外网IP的5种方法总结

在内网渗透中有时需要在某台WEB服务器中留下后门,该机器可以通过内网IP建立IPC连接,但还需要获知外网IP或域名才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: 1.通过nslookup访问外部地址 回显IP nslookup myip.opendns.com resolver1.opendns.com 但多数内网都是统一的出口流量 2.查看dns缓存 如果某站点频繁被访问 相关记录可能会出现在缓存里 ipconfig /displaydns 3.如果是IIS7 IIS7.5

3、通过外网连接ESXI注意事项

通过外网连接ESXI时,需要同时对TCP的443和902端口进行映射,打开控制台一会儿即可看到远程桌面. 登录时填写443映射的对应端口就行,比如我映射到22222端口,像如下登录即可:

ftp外网连接

今天就将一下redhat中ftp的的搭建 首先ftp的搭建很简单,个人觉得,但是公司要求从外网访问并可以下载,于是就出现了内网可以访问但是外网访问不了的问题,于是很纠结,网上找了半天,原来是主动模式和被动模式的原因,下面就说说ftp如何能从外网连接上 就用yum直接安装ftp yum -y install ftp 配置文件修改 [[email protected] ~]# grep -Ev "^#|^$" /etc/vsftpd/vsftpd.conf anonymous_enable

Outlook anywhere无法从外网连接exchange server 2007

Outlook anywhere无法从外网连接exchange server 2007 当一个使用 Outlook Anywhere 的客户端尝试连接 Windows Server 2008 上运行的 Exchange 2007 SP1 时,该客户端将失败.这是因为在 Windows Server 2008 上运行的客户端访问服务器上的 RPCProxy 组件无法通过端口 6004 来连接 Exchange 邮箱服务器上的 DSProxy 组件. Windows Server 2008 已将 T

Ubuntu下安装MySql并在外网连接

纯新手教程. 1.安装mysql apt-get install mysql-server mysql-client libmysqlclient15-dev 安装过程中会提示为数据库root账户设置密码,输入两边密码即可 2.进入 mysql mysql -uroot -p 3.重新设置mysql用户root的密码 GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "123456"; 4.创建新数据库 pro

利用ssh反向代理以及autossh实现从外网连接内网服务器

1. 描述一下目前的机器状况,梳理梳理: 机器 IP 用户名 备注 A 10.21.32.106 gdut728 目标服务器,处于内网 B 123.123.123.123 root 外网服务器,相当于桥梁的作用 PS:123.123.123.123只是我随意起的,大家请别攻击别人的服务器啊啊啊 2. 解决方法: 通俗地说:就是在机器A上做到B机器的反向代理:然后在B机器上做正向的代理实现本地端口的转发 2.1 实现前的准备 每台都要安装ssh的客户端. 在这里我使用的是centos7,都自带ss

从外网连接内网的打印机

使用cups 共享打印机 之前一直无法从 只需要在路由器中使用端口转发功能即可,主要是使得局域网与外网之间可以通信. uploading-image-255830.png 参考 http://service.tp-link.com.cn/detail_article_2834.html 原文地址:https://www.cnblogs.com/upuil/p/9164804.html

在内网搭建一台服务器实现从外网连接到内网

环境 服务端:CentOS 6.7 32-bit 客户端:Windows XP 服务端配置 # 关闭SELinux sed -i '/^SELINUX\b/s/=.*/=disabled/' /etc/selinux/config setenforce 0 # 安装EPEL源(默认yum源没有openvpn和easy-rsa软件包) rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/5/i386/epel-release-5-4.noarch.rpm

利用微软RD Client APP远程连接PC(附外网连接方法)

一.下载RD Client 这个就不用多说了... 二.设置PC允许远程桌面连接 PC系统以win10为例: 1.进入"远程设置"允许远程协助与远程桌面连接 桌面右键单击"此电脑",属性,单击左边"远程设置",按照下图方式勾选: 2.防火墙设置允许远程协助与远程桌面通过防火墙 进入控制面板->Windows防火墙->允许应用或功能通过Windows防火墙.按照下图方式勾选: 三.设置路由器DDNS服务及端口转发 基本上个人用户的公网i