使用校园网的时候,需要登陆认证界面才能正常上网,但是开发板并没有浏览器什么的,所以思考是否可以通过别的方法来实现上网。后来便想到了使用抓包的方法。

首先笔记本浏览器清除cookie,开启fiddler,然后打开校园网认证界面,登录账号并提交。

然后,分析fiddler抓到的包,看看都提交了什么数据。

最后,模拟上面的请求,使用程序提交登录数据。这里,我是用的是C语言:

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>#define SERVER_PORT 80int main(int argc, char **argv)
{char ch;int fd_socket = 0;int ret;struct sockaddr_in sock_server_addr;unsigned char send_buffer[800] = "POST /include/auth_action.php HTTP/1.1\n""Host: 服务器IP\n""Connection: keep-alive\n""Content-Length: 113\n""Accept: */*\n""X-Requested-With: XMLHttpRequest\n""User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36\n""Content-Type: application/x-www-form-urlencoded; charset=UTF-8\n""Origin: http://服务器IP\n""Referer: http://服务器IP/srun_portal_pc.php?ac_id=1&\n""Accept-Encoding: gzip, deflate\n""Accept-Language: zh-CN,zh;q=0.9\n""Cookie: language=en\n""\r\n""action=login&username=账户名&password=账户密码&ac_id=1&user_ip=&nas_ip=&user_mac=&save_me=0&ajax=1\n";int send_len;fd_socket = socket(AF_INET, SOCK_STREAM, 0);if(fd_socket == -1){printf("built socket err.\n");return fd_socket;}sock_server_addr.sin_family = AF_INET;sock_server_addr.sin_port = htons(SERVER_PORT);sock_server_addr.sin_addr.s_addr = inet_addr("服务器IP"); memset(sock_server_addr.sin_zero, 0, 8);ret = connect(fd_socket, (struct sockaddr *)&sock_server_addr, sizeof(struct sockaddr));if (ret == -1){printf("connect error!\n");return -1;}send_len = send(fd_socket, send_buffer, strlen(send_buffer), 0);if (send_len <= 0){close(fd_socket);return -1;}else{printf("Sent %d bytes.\n", send_len);}while(read(fd_socket,&ch,1)){ printf("%c", ch); } return 0;
}

send_buffer的内容是我根据自己的抓包得来的,你用的时候需要自行修改,程序其他部分一般可以不动。

编译执行,结果如下:

登录成功。

这时,ping baidu.com会出现:

ping bad address baidu.com

但是ping 220.181.38.251(百度的IP地址)已经可以了。

所以只需要再设置一下DNS(这里的设置要根据你自己的来,可以看看你的笔记本的DNS服务器是什么,二者设置成一样的就行了):

vi /etc/network/interfaces (修改/etc/resolv.conf的话也行,但是重启后会丢失)
追加:
dns-nameservers 192.168.0.1 8.8.8.8:wq重启网络(或者直接重启开发板,然后再执行一下上面的登录程序)

更进一步,可以在/etc/init.d/下新建文件,开机自启动上面的登录程序。

有了上面的思路,也可以写个程序在windows上使用,这样就不用每次手动登录,用python什么的,都很简单了。

时间有限,这里只是提供一个大概思路,没有写得很详细。有问题的话可以留言,我尽量回答。

另:
C 语言Socket 实现http 带参数的POST请求:https://blog.csdn.net/liujiaoyage/article/details/52467709

嵌入式开发板如何自动登陆校园网实现上网相关推荐

  1. 韦东山嵌入式开发板小结1

    韦东山嵌入式开发板小结1 一.连接[开发板-win10-虚拟机] 1.播放虚拟机VMware的ubuntu 16.04,设置win10和 虚拟机处于同一网段 >>>ipconfig ...

  2. 嵌入式开发板硬件操作入门学习9——集成电路芯片手册术语词汇表(中英文对照)

    原创链接:集成电路芯片半导体中英文对照术语词汇表 英语 中文 1-9 10 gigabit 10 Gb 1st Nyquist zone 第一奈奎斯特区域 3D full‑wave electroma ...

  3. 瑞芯微RK3399嵌入式开发板Wifi 驱动 build in 方式

     RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数.浮点.内存等作了大幅优化,在整体性能.功耗及核心面积三个方面都具革命性提升 ...

  4. 【转载】嵌入式开发板通过串口与PC互相传送文件

    嵌入式开发板通过串口与PC互相传送文件 2017年03月24日 15:55:17 缘客_ql 阅读数:6961 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  5. tx1开发板可以装linux,Jetson TX1嵌入式开发板被Nvidia推出,发力深度学习

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 不久前,Nvidia正式宣布基于TegraX1打造的JetsonTX1登陆中国区市场.据引见,该产品为Nvidia旗下首款针对深度学习神经网络而设计的嵌入 ...

  6. tx1开发板可以装linux,Nvidia推出Jetson TX1嵌入式开发板 针对深度学习神经网络设计...

    今天,Nvidia正式宣布基于Tegra X1打造的Jetson TX1登陆中国区市场.据介绍,该产品为Nvidia旗下首款针对深度学习神经网络而设计的嵌入式开发板,针对的开发方向为无人机.自主机器人 ...

  7. ARM嵌入式开发板推荐

    arm嵌入式主板具有低成本.高性能.低功耗的特点,是一个嵌入在设备里面做控制.数据处理使用的CPU板,承担着"大脑"的角色,主要是作为工控主板使用.短短几年,ARM嵌入式的异军突起 ...

  8. 最好的嵌入式开发板是哪个?

    最好的嵌入式开发板取决于您的需求和预算.如果您对性能要求较高,推荐 Raspberry Pi:如果您需要一个更小的开发板,推荐 Arduino:如果您需要一个可扩展性更强的开发板,推荐 BeagleB ...

  9. Express Pi 嵌入式开发板

    Express Pi 由物一世推出的一款面向工业控制,医疗电子,车载设备等领域官方嵌入式开发板.Express Pi搭载ExpOS操作系统,用户可通过配套的组态开发工具Studio,"低代码 ...

最新文章

  1. 动图图解C语言选择排序算法,含代码分析
  2. jmeter线程说明_4.centos下Jmeter+InfluxDB+Grafana环境的搭建1
  3. .NET获取不到js写的cookie解决方法
  4. dubbo中对服务多版本的支持
  5. leetcode129. 求根到叶子节点数字之和
  6. Qt中Tcp通信的简单使用二
  7. 开机一直转圈_电脑开机后网络一直转圈,程序也打不开?
  8. linux下解压 编译 安装,Linux 下开发环境安装配置-编译、解压、超链、
  9. excel不显示0_【扫盲】小白必看:excel表里数字格式常见的几种错误?
  10. C语言从入门到精通保姆级教程(2021版上)
  11. 网站标签页如何添加左边的小图标
  12. CSS Bulma 框架
  13. Mac 升级ruby版本
  14. 生物特征识别学科发展报告
  15. RTXa1000和a2000差距
  16. Codeforces Round #708 (Div. 2)B. M-arrays
  17. Ubuntu网页微信调整全屏
  18. C语言程序设计---读书笔记汇总(整理中)
  19. 2021年煤气考试题及煤气模拟试题
  20. Unity实用小工具或脚本——3D物体带坐标轴的拖拽

热门文章

  1. 基于Android的照片分组共享APP设计与实现
  2. 到底是加瓦好还是C好呢?
  3. html日历页面节假日_js css+html实现简单的日历
  4. oracle修改日历,oracle 日历
  5. UE4角色受击动画,随机播放音效
  6. CDH6.3.2防止被攻击,打补丁(未授权漏洞)
  7. 怎样把纸质试卷扫描成电子版?纸质转电子版教程
  8. 如何使用Node.js来制作电子音乐-编写我们的旋律
  9. 黑苹果win10双系统下文件名变灰色解决办法
  10. 一款APP从设计稿到切图过程全方位揭秘