最近我實現了我在python中的小型強制門戶。我將用戶重定向到dns請求的登錄頁面。所有工作正常,直到我意識到當DNS客戶端系統上的dns服務器手動更改爲公共DNS時,它完全繞過了強制門戶。我的問題是,如何更改dns服務器更改用戶,或者如何阻止所有未使用默認dns的傳出DNS請求。通過ICS(Internet連接共享)的DNS請求
我想在端口53上偵聽會捕獲所有使用扭曲的請求。 這是我我如何做一個很簡單的例子:
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor`
class UDP(DatagramProtocol):
def datagramReceived(self, datagram, addr):
print datagram, addr
port = 53
max_byte = 512
reactor.listenUDP(port, UDP(), '', max_byte)
reactor.run()
難道我做錯了?
我也試圖阻止遠程端口53從提供Internet連接的主機上的防火牆,但它也不起作用。
DNS是強制門戶中的一個大問題。一般來說,即使用戶未登錄,也需要使其工作。如果用戶想要連接到「stackoverflow.com」,則必須在第一次嘗試時獲得正確的IP地址。如果他不瀏覽器不會顯示強制門戶或在稍後重定向到頁面時出現問題。工作DNS的這一要求允許幾種技術擺脫強制門戶。但是列出它們以及如何抵消將遠遠超出戰略目標的範圍。 –
@Klaus我已經處理過這部分,並且工作正常。但我只是不知道如何去在Windows中的DNS。在Linux中,一切都很簡單,iproute表 –