准确检测python中的捕获门户
我需要可靠地检测设备是否具有完全的internet访问权限,即用户不局限于一个固定门户(也称为围墙花园),即一个有限的子网,该子网强制用户在表单上提交凭据以获得完全访问权限 我的应用程序正在自动执行身份验证过程,因此在开始登录活动之前,必须知道无法完全访问internet 问题不在于如何检查网络接口是否已启动并处于连接状态。这是关于确保设备具有不受限制的internet访问,而不是沙盒式的intranet段 以下是我目前要测试的代码:准确检测python中的捕获门户,python,python-2.7,networking,Python,Python 2.7,Networking,我需要可靠地检测设备是否具有完全的internet访问权限,即用户不局限于一个固定门户(也称为围墙花园),即一个有限的子网,该子网强制用户在表单上提交凭据以获得完全访问权限 我的应用程序正在自动执行身份验证过程,因此在开始登录活动之前,必须知道无法完全访问internet 问题不在于如何检查网络接口是否已启动并处于连接状态。这是关于确保设备具有不受限制的internet访问,而不是沙盒式的intranet段 以下是我目前要测试的代码: def get_connection_status(remo
def get_connection_status(remote_server = "www.google.com"):
for timeout in [1, 5, 10, 15]:
try:
print "Checking internet connection.."
socket.setdefaulttimeout(timeout)
# see if we can resolve the host name -- tells us if there is
# a DNS listening
host = socket.gethostbyname(remote_server)
# connect to the host -- tells us if the host is actually
# reachable
s = socket.create_connection((host, 80), 2)
s.close()
print 'Internet connected.'
return "Connected"
except Exception, e:
print e
print "Internet not connected."
return "Not Connected"
如果用户在捕获门户内,这会准确返回“未连接”吗?如果没有,有什么方法可以改进此方法,使其能够准确地检测到它?下面的答案并不特定于Python或任何其他语言 如果一个在
有围墙的花园中
,以下因素在大多数圈养门户中是标准的
有围墙的花园中
,他将被重定向到捕获门户页面。如果您将收到的页眉与服务器上配置的页眉进行比较,您将知道您是否落后于walled\u garden
你需要更具体地说明你的期望。你是否在试图检测你的主人是否坐在一家快餐店,让你在上网之前先看一些广告?或者你想确定你的主机是否在中国这样一个互联网被巨大防火墙隔离的国家?很抱歉不清楚。例如,去酒店并连接到他们的Wi-Fi,但在使用完整的互联网之前需要使用凭据登录。那种事。我想更接近你的快餐例子。这有意义吗?这个解决方案对我很有效。使用“请求”库使它变得非常简单。非常感谢你。