iptv鉴权 php,[转]关于openwrt用于dhcp客户端协议突破iptv的dhcp+鉴权(ipoe)
特別說明:我們這里(河北聯(lián)通)部分家庭光貓撥號,所有已經(jīng)都配置好,此方法不適用。
大家都知道,現(xiàn)在電信、移動、聯(lián)通iptv,很多地方都改用dhcp+,也就是ipoe來認(rèn)證iptv業(yè)務(wù),光貓中itv配置為橋接,盒子為dhcp+鑒權(quán),用戶名密碼采用加密方式認(rèn)證來獲取IP。目前比較常見的openwrt接入iptv,是抄下機(jī)頂盒成功認(rèn)證拿到的IP信息,openwrt設(shè)置靜態(tài)IP來實(shí)現(xiàn)的。
這次帶來的是,openwrt建立接口“IPTV”,采用dhcp客戶端的方式,直接過認(rèn)證拿到IP。
本教程只是簡單的講述要點(diǎn),其他像怎么抓包啊請自行百度。 首先,老規(guī)矩,咱們用Wireshark來抓個(gè)包,看下dhcp+的握手過程 我們來看下dhcp discover請求里,包含了option12跟60兩個(gè)關(guān)鍵的信息,也就是說iptv只認(rèn)證盒子名稱跟帳號密碼(我們這里聯(lián)通iptv只需要option60正確就能下發(fā)ip)
option60,也就是包含了iptv帳號密碼的數(shù)據(jù),想都不用想了,肯定是加密的。
接下來在openwrt上新建“IPTV”口,我這里是單獨(dú)把eth2設(shè)為itv口的,然后光貓的ITV口(設(shè)置橋接,綁定端口2,話說我們這里沒有綁定mac,所以無所謂啦)連到openwrt的IPTV對應(yīng)的物理口上。IPTV口設(shè)置dhcp客戶端,為了不影響上網(wǎng),最好設(shè)置一下網(wǎng)關(guān)躍點(diǎn),其他像防火墻啊啥的這里不作為重點(diǎn)講述了。
修改/etc/config/network中的IPTV參數(shù)
其中option hostname ‘XXXXX’填入我們抓包抓到的option12的明文信息,也就是機(jī)頂盒名稱(我們這里不要求)
option sendopts ‘0x3c:00001f39…..’這個(gè)需要講一下,因?yàn)閛ption60是加密信息,我們抓包抓到的是16進(jìn)制的信息,所以我們只能把抓到的信息原模原樣發(fā)回去,所以用sendopts來發(fā)送,具體的用法可以自行查看udhcpc的用法說明。后面的0x3c,0x3c表示的是十六進(jìn)制,也就是十進(jìn)制的60,也就是我們發(fā)送option60信息。后面的00001f39…..就是上面抓包我讓你們保存的option60的信息。
有的童鞋可能會問,我這里認(rèn)證方式除了option60,還有其他,比如61,125,怎么辦?
下面我來說一下option sendopts,拋磚引玉。抓包的數(shù)據(jù),不管有沒有加密,我們都能用sendopts來發(fā)送,比如,我拿到一個(gè)加密的option61,怎么辦? option sendopts ‘0x3d:XXXXXXX…..’ 十六進(jìn)制3d表示61,XXXX是抓包拿到的十六進(jìn)制加密信息 option125怎么辦? option sendopts ‘0x7d:XXXXXXX…..’ 十六進(jìn)制7d表示125 當(dāng)然了,這是發(fā)送十六進(jìn)制的加密數(shù)據(jù),那要是發(fā)送我上面說的明文option12呢? option sendopts ’12:XXXXXXX…..’ 是不是很簡單?
獲取到ip后udpxy、igmpproxy就自由發(fā)揮吧,不行的話設(shè)置下防火墻
PS:我這里沒有做這一步就獲取到了ip,照這個(gè)改完反而不行,怪異。
修改dhcp客戶端服務(wù)的腳本 我們找到/lib/netifd/proto/dhcp.sh,找到下面這行
————不包含這一行————
${vendorid:+-V “$vendorid”} \
————不包含這一行————
改成
————不包含這一行————
-V ” \
————不包含這一行————
總結(jié)
以上是生活随笔為你收集整理的iptv鉴权 php,[转]关于openwrt用于dhcp客户端协议突破iptv的dhcp+鉴权(ipoe)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux at命令关机,Linux
- 下一篇: Linux线程-概念和控制