【問題】請教關於以網路控制投影機的相關問題



贊助商連結


weiooooo
2009-01-03, 03:36 AM
請教各位大大幾個有關網路觀念的問題
小弟我對網路觀念並不是懂得很多
目前看到市面上的投影機
有許多都已經加入網路控制的功能
就是可以透過網路的方式來控制他的開、關機
或是顯示一些資訊 如燈泡小時、溫度等等...
小弟我就有一個想法
可不可自己寫一個程式
來控制家裡的各台投影機呢?

想著想著
於是有了這個問題產生
我想請教的問題就是
在各家廠牌的投影機中
各家都有各家的連線方式
有些是直接連線到投影機內
他會有已經寫好的網頁與功能直接可以控制
有些則是需要安裝他們家的軟體
以他們的軟體去控制
但不變的是 都是走網路的方式去達到控制的目的
如果我家有三台投影機
都是不同品牌的 控制的方式也都不一樣
但都是走網路的方式
有沒有可能在原廠沒有支援的情形下
自己可以寫出控制投影機功能的小程式呢?

我自己也想了想
感覺這問題的解決關鍵點是在
由於各家的控制方式都不一樣
而且感覺這也算是他們的各家的技術
所以應該是沒有辦法取得相關的控制方法

於是我想到網路遊戲不是都會有人利用修改封包
達到與伺服器溝通 做出自己想做的事情嗎?
那 是不是也可以利用在這上面
當我以原廠給的方式去控制每台投影機
電腦就捕捉我與投影機溝通的訊息(封包)
有了這些訊息(封包)之後
我在自己利用自己寫的程式發出同樣的訊息(封包)給投影機
達到控制的目的
我想請教各位大大的問題就是這個
不知道可不可行?

小弟我的觀念可能有些偏差
所以希望各位大大 給小弟一點思考方向與解答~

贊助商連結


mis339
2009-01-03, 01:40 PM
沒有做不到,只有想不到!
既然你想到了,那就看你的功力了!
抓封包不難,你可以先試著抓封包來分析,看能不能找出它的規則!

weiooooo
2009-01-04, 11:11 PM
沒有做不到,只有想不到!
既然你想到了,那就看你的功力了!
抓封包不難,你可以先試著抓封包來分析,看能不能找出它的規則!

感謝您的回覆
在請問一下
那我這樣的想法 在技術上面是可行的嗎?
可以以發送封包的方式 來達到控制的目的?

weiooooo
2009-01-06, 12:31 PM
恩....試了一、兩天 頭好痛 想不出來 發覺真的好像有些難度
並非我原本想的那麼簡單
碰到困難 解決不掉 真的很難過
我抓了一些封包 不知道各位大大可不可以幫我看一下
我嘗試到現在
有一個想法
在我抓到的這些封包內 有一個 就是我底下貼的東西
感覺它就是控制的關鍵
這一個封包主要的內容就是我透過網路
來進行投影機的開機監聽後取得的資料

封包內容如下:

POST /cgi-bin/power_on.cgi HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, */*
Referer: http://192.168.0.237/cgi-bin/power_ctl.cgi?key=pow_on&lang=e&x=17&y=11
Accept-Language: zh-tw
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Host: 192.168.0.237
Content-Length: 23
Connection: Keep-Alive
Cache-Control: no-cache
Authorization: Basic dXNlcjE6cGFuYXNvbmlj
lang=e&poweron=Power+On

而投影機給我的回應是一個HTML的頁面
內容是跟我說"投影機已經開了"
其封包內容如下:

HTTP/1.0 200 OK
Content-Type: text/html
Pragma: no-cache
Cache-control: no-cache
<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><LINK href="/default.css" type="text/css" rel="stylesheet"></HEAD><body text="white" bgColor="#003c58" background="/gif/bg.gif">Starting projector.<BR>After lamp turn on, open top page again.<BR><BR></BODY></HTML>

而我試到現在,發現有兩個想法要解決
1.這個封包看起來是可以控制投影機開機的封包,但...理論上真的是可行嗎?
如果技術上可行,那是不是我也製造內容一模一樣的封包給投影機,
投影機就真的會開機?!?!

2.如果上述的問題在技術上是可行
那要如何實現呢?
用PHP可以發送這樣的封包嗎?
還是要透過其他語言,如C++...等程式才能實現?

以上兩個問題 希望有大大可以給我一些思考方向或解答
我怕我真的觀念錯誤 而在錯誤中一直打轉....感謝大家~

PS:
上面那行粗體字"/cgi-bin/power_on.cgi"
這一行就是實際執行開機所用的程式
執行它就可以開機
但有一個重點
就是他一定要先輸入帳號密碼登入才有權限執行
我如果要做成網頁控制
不太可能在手動輸入密碼登入
所以我才會想用發送封包的方式
看能否實現這個問題~

FYI
2009-01-11, 06:47 PM
Authorization: Basic dXNlcjE6cGFuYXNvbmlj
lang=e&poweron=Power+On
...
就是他一定要先輸入帳號密碼登入才有權限執行
如果你只想單方面下指令, 不管回覆正確或錯誤的話, 把所有關鍵封包作成網頁形式應該可行, 否則可能Perl 或Python 比較有能力處理回覆訊息

ryoichi
2009-01-11, 09:09 PM
沒有做不到,只有想不到!

哇~,這句話好棒,我在學人際關係、生涯規劃課程的時候,也常聽老師說這句話

FYI
2009-01-11, 11:28 PM
哇~,這句話好棒,我在學人際關係、生涯規劃課程的時候,也常聽老師說這句話
您老師只是把孫中山先生的 "知難行易" 翻譯成白話文, 哄小孩而已

ryoichi
2009-01-12, 01:42 AM
拍謝,我並沒有很常在研究孫文的話
所以您的意思是這類的話,多半是在哄小孩?

對~,我是小孩子~