2018年04月13日 星期五

安卓获取mac 地址

解决方案:

一种比较折衷的办法,在获取MAC地址之前先判断当前WiFi状态,若开启了Wifi,则直接获取MAC地址,若没开启Wifi,则用代码开启Wifi,然后马上关闭,再获取MAC地址。

目前此方法测试成功,无论在哪种状态下都能正确取得设备的MAC地址(包括开机后未启动过Wifi的状态下),且在未开启Wifi的状态下,用代码开启Wifi并马上关闭,过程极短,不会影响到用户操作。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public String getMacAddress() {
 
    String macAddress =null;
    WifiManager wifiManager =
        (WifiManager)MyApplication.getContext().getSystemService(Context.WIFI_SERVICE);
    WifiInfo info = (null== wifiManager ?null: wifiManager.getConnectionInfo());
         
    if(!wifiManager.isWifiEnabled())
    {
        //必须先打开,才能获取到MAC地址
        wifiManager.setWifiEnabled(true);
        wifiManager.setWifiEnabled(false);
    }
    if(null!= info) {
        macAddress = info.getMacAddress();
    }
    returnmacAddress;
}

需要加入如下权限

1
2
3
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"> </uses-permission>
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>
<uses-permissionandroid:name="android.permission.WAKE_LOCK"> </uses-permission>

 

2018年03月23日 星期五

越来越像父亲了

前几年工资不高,每月除去开销所剩无几。与老婆的争吵也不断,嫌弃她乱买东西,尽买一些无用的东西。我觉得我越来越像父亲了,小时候父亲也是经常与母亲为了乱买东西争吵。我讨厌那样的生活,曾对婚姻绝望,想过放弃。

2018年03月22日 星期四

儿子说我能听懂动物的语言

儿子问我为什么红色念Red。我说世界上有很多语言,Red就是英语的叫法。就像小猫小狗一样,他们也有自己的语言,如果不学习他们的语言就不知道他们说什么。儿子说我能听懂动物的语言。所以我就问他,那小狗向你旺旺的叫,你知道他说啥吗?儿子说,“我饿了,我饿了”。那小偷来了小狗向小偷旺旺叫呢?儿子说,“救命啊,救命啊”

2018年01月31日 星期三

cent os linux系统使用自带Iptables 封IP

3、开放指定的端口

#允许本地回环接口(即运行本机访问本机)

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# 允许已建立的或相关连的通行

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

#允许所有本机向外的访问

iptables -A OUTPUT -j ACCEPT

# 允许访问22端口

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

#允许访问80端口

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

#允许FTP服务的21和20端口

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

iptables -A INPUT -p tcp –dport 20 -j ACCEPT

#如果有其他端口的话,规则也类似,稍微修改上述语句就行

#禁止其他未允许的规则访问

iptables -A INPUT -j REJECT

iptables -A FORWARD -j REJECT


4、屏蔽IP

#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。

#屏蔽单个IP的命令是

iptables -I INPUT -s 123.45.6.7 -j DROP

#封整个段即从123.0.0.1到123.255.255.254的命令

iptables -I INPUT -s 123.0.0.0/8 -j DROP

#封IP段即从123.45.0.1到123.45.255.254的命令

iptables -I INPUT -s 124.45.0.0/16 -j DROP

#封IP段即从123.45.6.1到123.45.6.254的命令是

iptables -I INPUT -s 123.45.6.0/24 -j DROP


4、查看已添加的iptables规则

iptables -L -n

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数

x:在 v 的基础上,禁止自动单位换算(K、M)

n:只显示IP地址和端口号,不将ip解析为域名


5、删除已添加的iptables规则

将所有iptables以序号标记显示,执行:

iptables -L -n –line-numbers

比如要删除INPUT里序号为1的规则,执行:

iptables -D INPUT 1


6、iptables的开机启动及规则保存

chkconfig –level 345 iptables on

CentOS上可以执行:service iptables save保存规则

linux下使用iptables封ip段的一些常见命令:

封单个IP的命令是:

iptables -I INPUT -s 211.1.0.0 -j DROP

封IP段的命令是:

iptables -I INPUT -s 211.1.0.0/16 -j DROP

iptables -I INPUT -s 211.2.0.0/16 -j DROP

iptables -I INPUT -s 211.3.0.0/16 -j DROP


封整个段的命令是:

iptables -I INPUT -s 211.0.0.0/8 -j DROP


封几个段的命令是:

iptables -I INPUT -s 61.37.80.0/24 -j DROP

iptables -I INPUT -s 61.37.81.0/24 -j DROP


解封的话:

iptables -D INPUT -s IP地址 -j REJECT

iptables -F 全清掉了


关闭: /etc/rc.d/init.d/iptables stop

启动: /etc/rc.d/init.d/iptables start

重启: /etc/rc.d/init.d/iptables restart


1、重启后生效

开启:chkconfig iptables on

关闭:chkconfig iptables off

2、即时生效,重启后失效

开启:service iptables start

关闭:service iptables stop

2018年01月10日 星期三

从前我也觉得,人活一辈子,开心最重要。

从前我也觉得,人活一辈子,开心最重要。后来越来越觉得,人活一辈子,开不开心都无所谓才最重要。