zoukankan      html  css  js  c++  java
  • wifi_uplink脚本分析

    ~ >: vim apps/tools/wifi_uplink 
    #!/bin/sh
    # Copyright (C) 2012 GuoWenxue <guowenxue@gmail.com QQ:281143292>
    # This Shell scripts used to NAT by iptables, to make wlan0 as the downlink device
    # and set the uplink device as eth0/ppp0, it will be called by crond

    DOWNLINK_DEV="wlan0"

    #可以改为ppp0

    DEF_UPLINK_DEV="eth0"

    #使能profile和ifcfg-wlan0文件
    source /etc/profile
    source $network_cfg_dir/ifcfg-$DOWNLINK_DEV

    #在ifcfg-wlan0文件中有设置是否使用AP模式,如果没有就会在这里退出。
    if [ $WORKMODE != AP ] ; then
       echo "$DOWNLINK_DEV doesn't work as AP mode, exit now..."
       exit
    fi

    #求出子网的网络地址,例如wlan0的子网的ip=192.168.2.1
    NETWORK=`/bin/ipcalc -n $IPADDR_AP $NETMASK_AP`
    DOWNLINK_SUBNET=${NETWORK##*=}


    #set -x

    #取得默认网关的网卡
    #Current defaulte gateway out-going interface
    cur_gateway_inf=`ip route show | grep default | sed -n '1p' | awk -F "dev" '{print $2}'`


    #Current Uplink interface
    cur_uplink_inf=`iptables -t nat -vnL POSTROUTING | grep $DOWNLINK_SUBNET | awk '{print $7}'`


    #Initialise NAT or not


    if [ ! -n "$cur_uplink_inf" ]; then
        iptables -A INPUT -i $DOWNLINK_DEV -j ACCEPT
        if [ -n "$cur_gateway_inf" ] ; then
            iptables -t nat -A POSTROUTING -s $DOWNLINK_SUBNET -o $cur_gateway_inf -j MASQUERADE
        fi
        exit
    fi


    if [ $cur_uplink_inf != $cur_gateway_inf ] ; then
       iptables -t nat -D POSTROUTING -s $DOWNLINK_SUBNET -o $cur_uplink_inf -j MASQUERADE
       iptables -t nat -A POSTROUTING -s $DOWNLINK_SUBNET -o $cur_gateway_inf -j MASQUERADE
    fi

  • 相关阅读:
    关于响应式框架的定位不了元素的坑
    pychrom 中文版
    firebug定位工具很强大
    查询数据中所有表名
    java解析Json中获取Array字段值及嵌套Json对象
    mysql表操作
    集合框架(二)
    集合框架
    Java API(二)
    JDBC入门
  • 原文地址:https://www.cnblogs.com/riskyer/p/3220242.html
Copyright © 2011-2022 走看看