<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hello world

    隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
    數(shù)據(jù)加載中……

    【轉(zhuǎn)】Android 實(shí)現(xiàn)PPPoE撥號

    關(guān)于Android實(shí)現(xiàn)PPPoE撥號上網(wǎng)的問題。


    系統(tǒng)必須安裝有ppp和rp-pppoe程序。一般ROM自帶有ppp程序的、rp-pppoe就未必有了,需要交叉rp-pppoe到目標(biāo)機(jī)。我的開發(fā)環(huán)境已帶有rp-pppoe的二進(jìn)制程序pppoe和一個(gè)shell程序pppoe-connect了。

    先來看看pppoe-connect里面是什么。。。

    [php]   view plain   copy
    1. #!/system/bin/sh  
    2.   
    3. PPPD_EXIT=""  
    4.   
    5. IFACE=$1  
    6. USERNAME=$2  
    7.   
    8. /system/bin/setprop "net.pppoe.ppp-exit" ""  
    9. /system/bin/setprop "net.pppoe.reason" ""  
    10. /system/bin/setprop "net.pppoe.interface" ""  
    11.   
    12. /system/bin/log -t aw-pppoe "Starting pppd"  
    13.   
    14. /system/bin/pppd pty "/system/bin/pppoe -p /etc/ppp/pppoe.pid -I $IFACE -T 80 -U -m 1412" \  
    15.             noipdefault noauth default-asyncmap nodefaultroute hide-password nodetach \  
    16.             usepeerdns mtu 1492 mru 1492 noaccomp nodeflate nopcomp novj novjccomp user \  
    17.             $USERNAME lcp-echo-interval 10 lcp-echo-failure 2 linkname pppoe  
    18.   
    19. PPPD_EXIT=$?  
    20.   
    21. #/system/bin/log -t aw-pppoe "pppd exited with $PPPD_EXIT"  
    22.   
    23. /system/bin/setprop "net.pppoe.ppp-exit" "$PPPD_EXIT"  
    24. /system/bin/setprop "net.pppoe.reason" "gone"  
    25. /system/bin/setprop "net.pppoe.interface" ""  

    重點(diǎn)關(guān)注這句

    [php]   view plain   copy
    1. /system/bin/pppd pty  "system/bin/pppoe -p /etc/ppp/pppoe.pid -I $IFACE -T 80 -U -m 1412"  \  
    2.             noipdefault noauth default-asyncmap nodefaultroute hide-password nodetach \  
    3.             usepeerdns mtu 1492 mru 1492 noaccomp nodeflate nopcomp novj novjccomp user \  
    4.             $USERNAME lcp-echo-interval 10 lcp-echo-failure 2 linkname pppoe  

    目前我對這句命令還不能完全看明白。了解幾個(gè)關(guān)鍵點(diǎn)就行。

    首先,pppoe-connect會運(yùn)行pppd和pppoe。所以著眼這個(gè)就行了。

    $IFACE是填網(wǎng)卡名,Android網(wǎng)卡一般以太網(wǎng)卡是eth0、無線網(wǎng)卡是wlan0。

    $USERNAME是填pppoe的賬號。

    看著是不是感覺少了什么?沒錯(cuò)!是密碼!有賬號那就必須有密碼的!這個(gè)pppoe-connect腳本沒帶有關(guān)于密碼的東西。

    一般密碼是用另外的pppoe-setup去設(shè)置的!既然沒有pppoe-setup那我就自己將密碼在這上面補(bǔ)上去!在前頭加入PSW=$3,把傳入的第三個(gè)參數(shù)存為變量PSW,然后再在命令user $USERNAME后面加上password $PSW。

    保存好文件。然后在shell 執(zhí)行命令

    [php]   view plain   copy
    1. pppoe-connect wlan0 賬號 密碼  
    這命令是阻塞的!如果幾秒后都沒返回些什么,那么pppoe程序已經(jīng)執(zhí)行成功,在工作了!然后再開一個(gè)虛擬終端輸入下面命令:

    [php]   view plain   copy
    1. netcfg  

    如果沒錯(cuò)會多出個(gè)ppp0網(wǎng)絡(luò)接口,并且這接口已有ip地址了。到這里就是撥號成功了!

    不過不能上網(wǎng)!

    我們還要將默認(rèn)路由映射綁定到這個(gè)ppp0接口。

    [php]   view plain   copy
    1. ip route del  default   
    多調(diào)用幾次也無妨,確保刪除所有原有的default路由映射。

    然后

    [php]   view plain   copy
    1. ip route add  default  dev ppp0  

    把default路由映射綁到ppp0上

    這時(shí)候試試ping下外網(wǎng)的ip,如無意外應(yīng)該能ping通了!

    OK!能上網(wǎng)了!

    少俠!且慢!保險(xiǎn)起見在ping域名試試?

    如果悲劇了!再修煉下面章節(jié)吧!

    ping通外網(wǎng)ip但ping不通域名的話。肯定是dns問題了!!

    [php]   view plain   copy
    1. getprop net.dns1  
    果然沒有返回dns地址吧?!

    其實(shí)在pppoe-connect里面的命令已經(jīng)用了usepeerdns選項(xiàng)的,ppp0已經(jīng)拿到dns,我們需要做的就是把net.ppp0.dns1的dns復(fù)制到net.dns1

    [php]   view plain   copy
    1. setprop net.dns1 $(getprop net.ppp0.dns1)  

    執(zhí)行此命令將net.dns1設(shè)置為跟net.ppp0.dns1一樣即可!一般你還會順手把dns2也設(shè)置一下的!你懂得!


    ping一下域名唄!能ping通么?

    不管你信不信!反正我行了!各種網(wǎng)頁、ftp、qq無壓力!

    再復(fù)制下我修改后的shell pppoe-connect程序吧,方便伸手黨

    [php]   view plain   copy
    1. #!/system/bin/sh  
    2.   
    3. PPPD_EXIT=""  
    4.   
    5. IFACE=$1  
    6. USERNAME=$2  
    7. PSW=$3  
    8.   
    9. /system/bin/setprop "net.pppoe.ppp-exit" ""  
    10. /system/bin/setprop "net.pppoe.reason" ""  
    11. /system/bin/setprop "net.pppoe.interface" ""  
    12.   
    13. /system/bin/log -t aw-pppoe "Starting pppd"  
    14.   
    15. /system/bin/pppd pty "system/bin/pppoe -p /etc/ppp/pppoe.pid -I $IFACE -T 80 -U -m 1412" \  
    16.             noipdefault noauth default-asyncmap nodefaultroute hide-password nodetach \  
    17.             usepeerdns mtu 1492 mru 1492 noaccomp nodeflate nopcomp novj novjccomp user \  
    18.             $USERNAME password $PSW lcp-echo-interval 10 lcp-echo-failure 2 linkname pppoe  
    19.   
    20. PPPD_EXIT=$?  
    21.   
    22. #/system/bin/log -t aw-pppoe "pppd exited with $PPPD_EXIT"  
    23.   
    24. /system/bin/setprop "net.pppoe.ppp-exit" "$PPPD_EXIT"  
    25. /system/bin/setprop "net.pppoe.reason" "gone"  
    26. /system/bin/setprop "net.pppoe.interface" ""  

    posted on 2017-06-02 21:22 聽風(fēng) 閱讀(1074) 評論(0)  編輯  收藏 所屬分類: 嵌入式

    主站蜘蛛池模板: 免费观看亚洲人成网站| 久久精品国产免费观看三人同眠| 亚洲欧洲精品成人久久曰| 亚洲AV成人无码天堂| 亚洲日韩乱码中文无码蜜桃| 亚洲精品国产精品乱码在线观看| 国产亚洲美女精品久久久2020 | 亚洲AV成人无码久久WWW| 亚洲三级在线免费观看| 亚洲六月丁香六月婷婷色伊人| 亚洲国产成人资源在线软件| 亚洲欧美成人av在线观看| 亚洲精品V天堂中文字幕| 黄床大片30分钟免费看| 巨胸狂喷奶水视频www网站免费| 久久精品成人免费网站| 宅男666在线永久免费观看| 亚洲av永久无码精品表情包| 精品无码专区亚洲| 99久久精品免费视频| 亚洲av无码天堂一区二区三区 | 深夜a级毛片免费视频| 一边摸一边桶一边脱免费视频 | 亚洲免费观看在线视频| 亚洲av无码久久忘忧草| 亚洲日韩国产二区无码| japanese色国产在线看免费| 午夜影院免费观看| 免费看的黄色大片| 亚洲午夜av影院| 亚洲高清资源在线观看| 亚洲日韩久久综合中文字幕| 羞羞视频免费网站日本| 久久久久免费看成人影片| 成年人免费网站在线观看| 国产AV无码专区亚洲AV漫画| 亚洲中文字幕乱码熟女在线| 国产精品视频全国免费观看| 69成人免费视频| 亚洲国产综合91精品麻豆| 中文字幕版免费电影网站|