网站开发服务器架设,常州市网站建设公司,wordpress插件影响网站,深圳百度关键字优化提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、场景二、介绍1.测试端口2.访问百度3. 简单的爬虫 前言
最近telnet命令用的比较多#xff0c;所以记录一下。 一、场景
ping应该是大家最常用的命令… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、场景二、介绍1.测试端口2.访问百度3. 简单的爬虫 前言
最近telnet命令用的比较多所以记录一下。 一、场景
ping应该是大家最常用的命令可以测试节点之间通不通。但是我们如果想测试节点之间的指定端口通不通呢 而且最近遇到了一些场景就是配置端口映射的ip是不能ping通的。 但是可以用ssh指定端口连接。所以可以用telnet连接。
二、介绍
1.测试端口
telnet ip port2.访问百度
其实通过这个例子可以更好的理解http协议。 依稀记得当年看《计算机网络自顶向下方法》的时光。其实课本上描述的很详细了什么定义GET,Host字段然后实操呢实操仅仅是考试吗会影响我访问网页吗 但其实一切都是可以实操的。计算机没有黑魔法我们可以通过知识去理解这个真实的世界。
ping获取百度地址
➜ ping www.baidu.com
PING www.a.shifen.com (180.101.50.188) 56(84) bytes of data.
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq1 ttl51 time14.7 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq2 ttl51 time12.0 ms
^C64 bytes from 180.101.50.188: icmp_seq3 ttl51 time11.1 ms--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2175ms
rtt min/avg/max/mdev 11.125/12.580/14.652/1.504 mstelnet发送http请求
➜ telnet 180.101.50.188 80
Trying 180.101.50.188...
Connected to 180.101.50.188.
Escape character is ^].
GET / HTTP/1.1
Connection: close
Host: www.baidu.comHTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 9508
Content-Type: text/html
Date: Fri, 02 Feb 2024 05:43:38 GMT
P3p: CP OTI DSP COR IVA OUR IND COM
P3p: CP OTI DSP COR IVA OUR IND COM
Pragma: no-cache
Server: BWS/1.1
Set-Cookie: BAIDUIDCB255C6E0972913C1C5DD40F2FA3A92C:FG1; expiresThu, 31-Dec-37 23:55:55 GMT; max-age2147483647; path/; domain.baidu.com
Set-Cookie: BIDUPSIDCB255C6E0972913C1C5DD40F2FA3A92C; expiresThu, 31-Dec-37 23:55:55 GMT; max-age2147483647; path/; domain.baidu.com
Set-Cookie: PSTM1706852618; expiresThu, 31-Dec-37 23:55:55 GMT; max-age2147483647; path/; domain.baidu.com
Set-Cookie: BAIDUIDCB255C6E0972913C9B77469AFEF54677:FG1; max-age31536000; expiresSat, 01-Feb-25 05:43:38 GMT; domain.baidu.com; path/; version1; commentbd
Traceid: 1706852618059642266612178835182056953725
Vary: Accept-Encoding
X-Ua-Compatible: IEEdge,chrome1
X-Xss-Protection: 1;modeblock
Connection: close!DOCTYPE htmlhtmlheadmeta http-equivContent-Type contenttext/html; charsetUTF-8meta http-equivX-UA-Compatible contentIEedge,chrome1meta contentalways namereferrermeta namedescription content全球领先的中文搜索引擎、致力于让网民更便捷地获取信息找到所求。百度超过千亿的中文网页数据库可以瞬间找到相关的搜索结果。link relshortcut icon href//www.baidu.com/favicon.ico typeimage/x-iconlink relsearch typeapplication/opensearchdescriptionxml href//www.baidu.com/content-search.xml title百度搜索title百度一下你就知道/title一切没有黑魔法都是约定好的文本。课本里的知识在真实世界里得到了映射。
3. 简单的爬虫
既然telnet可以访问百度那么telnet是怎么访问百度的好像只是一些简单的读写操作所以我们能不能用linux最基础的系统调用syscall实现访问网页这是不是爬虫的第一步呢
#include netdb.h
#include sys/socket.h
#include netinet/in.h
#include arpa/inet.h
#include unistd.h#include string
#include iostreamint main() {std::string domain(www.baidu.com);hostent* host gethostbyname(domain.c_str());std::string hname(host-h_name);std::cout hname std::endl;for (int i 0; host-h_addr_list[i]; i) {struct in_addr* addr (struct in_addr*) host-h_addr_list[i];std::string ip(inet_ntoa(*addr));std::cout ip std::endl;}int client_socket socket(AF_INET, SOCK_STREAM, 0);if (client_socket -1) {std::cout Socket create failed std::endl;return -1;}struct sockaddr_in server_addr;server_addr.sin_family AF_INET;server_addr.sin_addr.s_addr *(in_addr_t *)host-h_addr_list[0];server_addr.sin_port htons(80);int err connect(client_socket, (struct sockaddr *)server_addr, sizeof(server_addr));if (err 0 ) {std::cout error err std::endl;return -1;}std::string httptext;httptext.append(GET / HTTP/1.1\r\n).append(Connection: close\r\n).append(Host: www.baidu.com\r\n).append(\r\n);ssize_t ret write(client_socket, httptext.c_str(), httptext.size());if (ret ! httptext.size()) {std::cout error: ret ! httptext.size() std::endl;return -1;} else {std::cout success write std::endl;}char buffer[1024] {0};ssize_t bytes_received;while(bytes_received read(client_socket, buffer, sizeof(buffer))) {std::cout buffer std::endl;}return 0;
}编译执行~