有什麼辦法讓socket.socket.recv
帶有隱藏輸入。例如,如果我要求輸入密碼,我希望輸入被隱藏,就像我正在運行「sudo」bash命令一樣。
編輯:
socket.socket.recv
要求在遠程端的數據。當你連接到服務器時,它會詢問你的文本,當你輸入它時,它會顯示在你的控制檯中。現在,當您使用sudo命令時,它會要求輸入密碼,並且看不到您鍵入的文本。我想要這樣的東西,可以爲socket.sock.recv
工作,所以你不會看到你輸入的密碼。
編輯2:
當我說socket.socket.recv
我其實是有點像socket._socketobject.recv
它看起來像這樣在我的計劃:client.recv(BUF_SIZE)
。
編輯3:
我在做一個telnet服務器。 client.recv(BUF_SIZE)
就像在客戶端計算機上運行raw_input
一樣。那麼在客戶機上有沒有類似於運行getpass.getpass
的東西?帶隱藏輸入的python socket.socket.recv
1
A
回答
1
socket.recv()
從套接字返回數據,你對這些數據做什麼取決於你。
我猜你正在做的事情是這樣的:
s.connect(...)
while True:
print s.recv(4096)
在這種情況下,你的問題是遠程到底哪裏有人推測打字輸入。
你能澄清你的問題嗎? recv()
從不顯示數據。
1
(在回答提問的澄清)
如果你希望能夠在一個控制檯(文本模式),提示沒有它,以獲得來自用戶的輸入被顯示出來,你可能想使用getpass
。
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from getpass import getpass
>>> p = getpass("Enter some text now: ")
Enter some text now:
>>> print p
secret
>>>
但是,這絕對與套接字和網絡無關。上面的變量p
包含用戶輸入的文本(即他們的密碼)。如果您通過socket.sendall(p)
發送此網絡,則遠程端將收到此數據。在這一點上它是由接收腳本來決定如何對數據進行修改......
1
(響應編輯2)
這裏是你如何可以編碼一些數據是否是一個簡單的例子祕密與否,並傳遞數據的功能之間:
Python 2.6.2 (r262:71600, Sep 22 2009, 18:29:26)
[GCC 3.4.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def capture(secret=False):
... if secret:
... from getpass import getpass
... return chr(0) + getpass("Enter some secret text now: ")
... else:
... return raw_input("Enter some text now: ")
...
>>> def display(data):
... if data[0] == chr(0):
... print "(Secret text hidden)"
... else:
... print data
...
>>> display(capture())
Enter some text now: Hello
Hello
>>> display(capture(secret=True))
Enter some secret text now:
(Secret text hidden)
>>>
如果您正在使用的插座,則需要在一端使用s.sendall(capture())
,並display(s.recv4096))
在另一端。
相關問題
- 1. Python:如何隱藏輸入
- 2. 在python中隱藏密碼輸入
- 3. Python curses - 隱藏用戶輸入
- 4. Python硒調用隱藏文件輸入
- 5. 進入後隱藏輸入文本,輸入後隱藏密碼
- 6. 輸入值隱藏
- 7. 更新帶鍵入值的隱藏輸入?
- 8. 從隱藏的輸入值
- 9. Jquery的隱藏輸入
- 10. 顯示隱藏的輸入
- 11. 造型隱藏的輸入
- 12. 隱藏的輸入字段
- 13. 輸入時隱藏輸入密碼(shell)
- 14. 使用帶引號的隱藏輸入值的問題
- 15. Selenium(Python):如何在隱藏的輸入中插入值?
- 16. ajax.beginform onsucess updatetargetid隱藏輸入
- 17. 選擇值隱藏輸入
- 18. 隱藏輸入按鈕
- 19. 隱藏輸入爲小寫
- 20. jQuery.validate和隱藏輸入
- 21. 隱藏輸入不工作
- 22. jQuery輸入不隱藏
- 23. 隱藏輸入字段?
- 24. JavaScript和隱藏輸入
- 25. 隱藏輸入無價值
- 26. ASP.NET - 隱藏BoundField輸入
- 27. Javascript隱藏輸入數組
- 28. 設定值隱藏輸入
- 29. 設定值隱藏輸入
- 30. 在隱藏輸入中存儲帶有換行符的文本
我的意思是''socket.socket.recv''在客戶端輸入時顯示數據,因爲無論您鍵入的是什麼(在客戶端)。現在,當您使用'sudo'命令時,無論您輸入什麼密碼,都不會顯示。這是一個隱藏輸入的例子。我想知道是否有某種recv輸入(在客戶端)被隱藏(輸入時未顯示)。 – None 2010-05-16 00:54:09