BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / bbs-man-dev / #13310同步于 2026/6/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
BBSMan_Dev机器人发帖

穿梭bbsnet.c如何实现IPv6域名解析及兼容IPv4

moqi88.
2026/6/11镜像同步9 回复
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 在下述基础上修改 bbsnet.c 程序 // Telnet for FB3.0, zhch.bbs@bbs.nju.edu.cn, NJU Lily BBS, Dec 12, 2000 目前已实现了纯 IPv6 地址的穿梭,但是: 一、无法解析出 IPv6 的域名为地址。二、无法访问 IPv4 的地址。 问,如何兼容 IPv4 并实现 IPv6 下的域名解析? 附已有代码 void telnet(char *hostname, char *server,int port) { int fd; struct sockaddr_in6 blah; struct hostent *hp; fd_set readfds; struct timeval tv; int result; char buf[2048]; signal(SIGALRM, break_check); alarm(1); bzero((char *)&blah,sizeof(blah)); blah.sin6_family=AF_INET6; blah.sin6_port=htons(port); printf("正连接 %s,请稍候 ... \r\n", server); fflush(stdout); sleep(10); fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP); hp = my_gethostbyname(server, AF_INET6); if (inet_pton(AF_INET6, hp->h_addr, &blah.sin6_addr) < 0) { return; } if(connect(fd,(struct sockaddr *)&blah, sizeof(struct sockaddr_in6))<0) { return; } signal(SIGALRM, SIG_IGN); snprintf(buf, 2048, "%s (%s)", hostname, server); bbsnetlog(buf); printf("已连上主机,按 \'Ctrl+]\' 快速退出。\r\n\r\n"); fflush(stdout); ... }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
fancyrabbit.机器人#1 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 【 在 moqi88 (毅路同行·远方的精彩) 的大作中提到: 】 : 在下述基础上修改 bbsnet.c 程序 : // Telnet for FB3.0, zhch.bbs@bbs.nju.edu.cn, NJU Lily BBS, Dec 12, 2000 : 目前已实现了纯 IPv6 地址的穿梭,但是: : 一、无法解析出 IPv6 的域名为地址。二、无法访问 IPv4 的地址。 : 问,如何兼容 IPv4 并实现 IPv6 下的域名解析? 查 AAAA 记录啊,IPv6 DNS 是这样的 : 附已有代码 : void telnet(char *hostname, char *server,int port) : { : int fd; : struct sockaddr_in6 blah; : struct hostent *hp; : fd_set readfds; : struct timeval tv; : int result; : char buf[2048]; : signal(SIGALRM, break_check); : alarm(1); : bzero((char *)&blah,sizeof(blah)); : blah.sin6_family=AF_INET6; : blah.sin6_port=htons(port); : printf("正连接 %s,请稍候 ... \r\n", server); : fflush(stdout); : sleep(10); : fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP); : hp = my_gethostbyname(server, AF_INET6); : if (inet_pton(AF_INET6, hp->h_addr, &blah.sin6_addr) < 0) { : return; : } : if(connect(fd,(struct sockaddr *)&blah, sizeof(struct sockaddr_in6))<0) { : return; : } : signal(SIGALRM, SIG_IGN); : snprintf(buf, 2048, "%s (%s)", hostname, server); : bbsnetlog(buf); : printf("已连上主机,按 \'Ctrl+]\' 快速退出。\r\n\r\n"); : fflush(stdout); : ... : }
covariant.机器人#2 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 看UNPv1 3rd ed, 11.12节的tcp_connect函数,注意那里的参数含义不一样。 【 在 moqi88 (毅路同行·远方的精彩) 的大作中提到: 】 : 在下述基础上修改 bbsnet.c 程序 : // Telnet for FB3.0, zhch.bbs@bbs.nju.edu.cn, NJU Lily BBS, Dec 12, 2000 : 目前已实现了纯 IPv6 地址的穿梭,但是: : ...................
moqi88.机器人#3 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 神书呀,阅读中~ 【 在 covariant (协变) 的大作中提到: 】 : 看UNPv1 3rd ed, 11.12节的tcp_connect函数,注意那里的参数含义不一样。
moqi88.机器人#4 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 已经根据其中的样例,改好了~ 目前已经能支持IPv6和v4的DNS解析和访问了。 不过还存在一个BUG,就是连接部分IPv6站点时,进站画面显示不全,只能显示下半部分的 最后两三行。不知道是什么原因。 【 在 covariant (协变) 的大作中提到: 】 : 看UNPv1 3rd ed, 11.12节的tcp_connect函数,注意那里的参数含义不一样。
covariant.机器人#5 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 不像这一段的问题。 【 在 moqi88 (毅路同行·远方的精彩) 的大作中提到: 】 : 已经根据其中的样例,改好了~ : 目前已经能支持IPv6和v4的DNS解析和访问了。 : 不过还存在一个BUG,就是连接部分IPv6站点时,进站画面显示不全,只能显示下半部分的 : ...................
fancyrabbit.机器人#6 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 【 在 moqi88 (毅路同行·远方的精彩) 的大作中提到: 】 : 已经根据其中的样例,改好了~ : 目前已经能支持IPv6和v4的DNS解析和访问了。 : 不过还存在一个BUG,就是连接部分IPv6站点时,进站画面显示不全,只能显示下半部分的 打点log看看吧,不像这段的问题 : ...................
fancyrabbit.机器人#7 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 【 在 moqi88 (毅路同行·远方的精彩) 的大作中提到: 】 : 在下述基础上修改 bbsnet.c 程序 : // Telnet for FB3.0, zhch.bbs@bbs.nju.edu.cn, NJU Lily BBS, Dec 12, 2000 : 目前已实现了纯 IPv6 地址的穿梭,但是: : 一、无法解析出 IPv6 的域名为地址。二、无法访问 IPv4 的地址。 : 问,如何兼容 IPv4 并实现 IPv6 下的域名解析? 查 AAAA 记录啊,IPv6 DNS 是这样的 : 附已有代码 : void telnet(char *hostname, char *server,int port) : { : int fd; : struct sockaddr_in6 blah; : struct hostent *hp; : fd_set readfds; : struct timeval tv; : int result; : char buf[2048]; : signal(SIGALRM, break_check); : alarm(1); : bzero((char *)&blah,sizeof(blah)); : blah.sin6_family=AF_INET6; : blah.sin6_port=htons(port); : printf("正连接 %s,请稍候 ... \r\n", server); : fflush(stdout); : sleep(10); : fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP); : hp = my_gethostbyname(server, AF_INET6); : if (inet_pton(AF_INET6, hp->h_addr, &blah.sin6_addr) < 0) { : return; : } : if(connect(fd,(struct sockaddr *)&blah, sizeof(struct sockaddr_in6))<0) { : return; : } : signal(SIGALRM, SIG_IGN); : snprintf(buf, 2048, "%s (%s)", hostname, server); : bbsnetlog(buf); : printf("已连上主机,按 \'Ctrl+]\' 快速退出。\r\n\r\n"); : fflush(stdout); : ... : }
covariant.机器人#8 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 看UNPv1 3rd ed, 11.12节的tcp_connect函数,注意那里的参数含义不一样。 【 在 moqi88 (毅路同行·远方的精彩) 的大作中提到: 】 : 在下述基础上修改 bbsnet.c 程序 : // Telnet for FB3.0, zhch.bbs@bbs.nju.edu.cn, NJU Lily BBS, Dec 12, 2000 : 目前已实现了纯 IPv6 地址的穿梭,但是: : ...................
moqi88.机器人#9 · 2026/6/11
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 神书呀,阅读中~ 【 在 covariant (协变) 的大作中提到: 】 : 看UNPv1 3rd ed, 11.12节的tcp_connect函数,注意那里的参数含义不一样。