gpt4 book ai didi

我可以获得 DOS 6.22 操作系统的 IP 地址吗?

转载 作者:行者123 更新时间:2023-11-30 18:24:41 25 4
gpt4 key购买 nike

我正在使用 DOS 6.22,我需要使用 C 程序提取系统的 IP 地址。

int main()
{
int n;
struct ifreq ifr;
char array[] = "eth0";

n = socket(AF_INET, SOCK_DGRAM, 0);
//Type of address to retrieve - IPv4 IP address
ifr.ifr_addr.sa_family = AF_INET;
//Copy the interface name in the ifreq structure
strncpy(ifr.ifr_name , array , IFNAMSIZ - 1);
ioctl(n, SIOCGIFADDR, &ifr);
close(n);
//display result
printf("IP Address is %s - %s\n" , array , inet_ntoa(( (struct sockaddr_in *)&ifr.ifr_addr )->sin_addr) );
return 0;
}

但错误的是,即使使用所有头文件,它也无法识别SIOCGIFADDR变量。

DOS支持网络吗?

最佳答案

MS-DOS(我想您与它有关,因为 6.22 是(如果不是)最后发布的版本之一;有很多 DOS)从来没有本地 IP堆。

因此,在 MS-DOS 下没有统一的方法来查询“系统”的 IP(或者事实上,任何与网络相关的事物),因为 MS-DOS 从未内置任何网络,所以作为一个系统,它没有IP地址。也许单个可执行文件构建了以太网,并在其之上构建了 IP 连接,或者可能是驻留的伪驱动程序构建了,但不是操作系统。

这意味着您正在使用 MS-DOS 中存在的数百个第三方 IP 实现之一。您没有告诉我们具体是哪一个,所以我们无法帮助您。

现在,您在编译未定义常量时会遇到错误 - 您可能没有使用正确的#include,或者没有配置编译器来查找正确的 header 目录。

无论如何,我建议您了解一些有关 C 和 MS-DOS 的知识,最重要的是,弄清楚您正在使用哪种 IP 实现,以及从哪里获取相关文档。

关于我可以获得 DOS 6.22 操作系统的 IP 地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com