AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 26878
Accepted
Vadim Peretokin
Vadim Peretokin
Asked: 2011-02-18 11:55:46 +0800 CST2011-02-18 11:55:46 +0800 CST 2011-02-18 11:55:46 +0800 CST

如何以编程方式登录热点类型的网络?

  • 772

我经常连接到一个开放的网络,但在用于网页之前需要通过密钥验证。是否可以使用脚本自动进行身份验证?

network-manager
  • 2 2 个回答
  • 1828 Views

2 个回答

  • Voted
  1. Best Answer
    Oli
    2011-02-18T14:33:50+08:002011-02-18T14:33:50+08:00

    多么有趣的问题。

    虽然我确信ændrük 的答案可能会奏效,但我对让依赖桌面软件的东西来管理网络可用性略有反对。

    我建议您使用Python 的 Mechanize 库。您可以通过以下方式从存储库安装它:

    sudo apt-get install python-mechanize
    

    然后获取脚本。您需要首先找出您要提交的页面的结构。您需要找到您的表单来自哪里以及需要输入哪些字段才能提交。一旦你知道了,它真的就像写一个快速的小表单解析器和提交器一样简单。机械化完成所有繁重的工作。这是一个改编自他们关于表单的文档的快速示例:

    import sys
    from mechanize import ParseResponse, urlopen, urljoin
    
    # replace this with the actual login page
    # you'll need to do some research
    uri = "http://theloginpage.com/"
    
    response = urlopen(uri)
    forms = ParseResponse(response, backwards_compat=False)
    form = forms[0]
    print form
    form["username"] = "your username"
    form["username"] = "password"
    
    # form.click() returns a mechanize.Request object
    # (see HTMLForm.click.__doc__ if you want to use only the forms support, and
    # not the rest of mechanize)
    print urlopen(form.click()).read()
    

    根据他们的系统如何工作,这可能就足够了。当他们打开连接时,您可能必须绑定一些 cookie jarring 以保持会话处于活动状态,但从技术上讲,他们没有理由要求这样做。

    然后你只需要将它绑定到网络系统中,它就会被调用。从中加载它/etc/network/if-up.d应该可以,但我建议您在代码前加上检查,以确保您确实位于登录工作的热点上。

    • 5
  2. ændrük
    2011-02-18T13:35:12+08:002011-02-18T13:35:12+08:00

    根据现有强制门户的类型,您可以通过使用 Wget(使用Tamper Data了解需要发送哪些数据)或使用 Firefox 中的iMacros脚本发送的 POST 请求进行身份验证。

    您可以添加脚本以/etc/network/if-up.d使其在每次建立网络连接时运行。在执行任何操作之前让脚本验证您使用的网络iwconfig,并确保使用启动命令,sudo -u yourusername这样您就不会以 root 身份运行 Web 浏览器。

    • 2

相关问题

  • 更改DNS IP的正确方法是什么?

  • 删除后如何将网络管理器小程序添加到面板?

  • 我可以在没有托盘/坞站/栏的情况下使用 NetworkManager 吗?

  • 网络管理器和“ifconfig”“ifup”等有什么区别?

  • 如何设置默认启用网络?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve