稳定端口映射工具_内网穿透软件_本地映射外网教程交流_nat123论坛客服

标题: 单片机如何进行nat123全映射?域名自动认证代码示例 [打印本页]

作者: majun4356    时间: 2018-9-10 15:51
标题: 单片机如何进行nat123全映射?域名自动认证代码示例
由于工作需要,现在开发通过单片机访问,电脑端的nat123的全映射?
根据全映射的的说明,先进行http域名访问,然后就可以,进行电脑端的全映射服务了,


谁有http进行单片机C语言,实现的http域名访问包??

中移动的NB-IOT,如何实现http的域名访问数据包??


谢谢

作者: nat123jia    时间: 2018-9-11 07:54
单片机如果是linux系统可以使用命令进行认证:
wget  "http://映射后域名:任意端口"

如果是其它系统可以直接TCP连接任意端口后,发送http数据包:
GET / HTTP/1.1
Host: 你的全映射域名
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*

即可完成认证,注意数据包后加两个换行符

认证后支持任意传输层协议的通信
作者: nat123jia    时间: 2018-9-11 08:10
C语言示例直接调用 openSite(全映射域名); 进行完成认证,其它语言类同


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5. #include <sys/socket.h>
  6. #include <arpa/inet.h>
  7. #include <netinet/in.h>
  8. #include <unistd.h>
  9. int openSite(char *argv){
  10.    
  11.     int sockfd;
  12.     int len;
  13.     struct sockaddr_in address;
  14.     int result;
  15.     char httpstring[100];
  16.     sprintf(httpstring,"GET / HTTP/1.1\r\n"
  17.           "Host: %s\r\n"
  18.           "Connection: Close\r\n\r\n",argv);
  19.     char ch;
  20.     sockfd = socket(AF_INET, SOCK_STREAM, 0);
  21.     address.sin_family = AF_INET;
  22.     address.sin_addr.s_addr = inet_addr(argv);
  23.     address.sin_port = htons(8080);
  24.     len = sizeof(address);
  25.     result = connect(sockfd,(struct sockaddr *)&address,len);
  26.     if(result == -1){
  27.        perror("oops: client");
  28.        return 1;
  29.     }
  30.     write(sockfd,httpstring,strlen(httpstring));
  31.     while(read(sockfd,&ch,1)){
  32.       printf("%c", ch);
  33.     }
  34.     close(sockfd);
  35.     printf("\n");
  36.     return 0;
  37. }
复制代码



作者: majun4356    时间: 2018-9-11 13:36
nat123jia 发表于 2018-9-11 07:54
单片机如果是linux系统可以使用命令进行认证:
wget  "http://映射后域名:任意端口"

非常感谢,测试通过,完美解决!


作者: majun4356    时间: 2018-9-11 15:39
nat123jia 发表于 2018-9-11 08:10
C语言示例直接调用 openSite(全映射域名); 进行完成认证,其它语言类同

非常感谢,完美解决,这个方法,完美解决!

作者: pjceo    时间: 2019-5-8 18:18
nat123jia 发表于 2018-9-11 07:54
单片机如果是linux系统可以使用命令进行认证:
wget  "http://映射后域名:任意端口"

如果是其它系统可以直接TCP连接任意端口后,发送http数据包:
GET / HTTP/1.1
Host: 你的全映射域名
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*

即可完成认证,注意数据包后加两个换行符

认证后支持任意传输层协议的通信


上面这个,我们这些菜鸟都不会弄。怎么搞





欢迎光临 稳定端口映射工具_内网穿透软件_本地映射外网教程交流_nat123论坛客服 (http://www.natbbs.com/) Powered by Discuz! X3.1