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