2013-10-09 86 views
1

我使用php4連接到舊的路由器。PHP Telnet - 發送BackSpace

一旦連接完成,我已經記錄在我發送的一系列命令..

據我所知路由器我可以回答它直接提出問題的輸出,所以我送:

fputs($fp,"Upgrade\r"); // run upgrade command 
fputs($fp,"y\r"); // Send y for Yes 
fputs($fp,"\r"); // send return 

我需要發送的下一行是退格5次。我試過

fputs($fp,"\^h"); 
fputs($fp,"\x08"); 
fputs($fp,"\BS"); 

他們都送,但沒有被後間隔..我怎麼送5退格刪除當前的條目,然後我可以把我的新的項目?

感謝

+0

您是否嘗試過記錄,當你做手工,看終端發送什麼樣的網絡流量? – Orbling

+0

您是否嘗試過使用「\ x7f」作爲刪除字符? –

+0

@Mark Ba​​ker - 似乎在當前值的末尾添加空格,而不是將其刪除。我發送它爲:'fputs($ fp,「\ x7f」);' – JeffVader

回答

0

你試過發送

chr(8) 

直接(沒有字符串操作等)?

你知道路由器是否使用標準的Telnet協議或者是通過一些特殊的路由器管理應用程序使用的專有(擴展)協議?

@評論:我不相信ASCII代碼7將工作,因爲它的BEL,不是嗎? 見http://tools.ietf.org/html/rfc137,第8頁

+0

對不起,你是怎麼直接說的?我已經嘗試過'fputs($ fp,chr(8));'但那不行。 – JeffVader