c语言中怎样读取当前gethostname值

c语言中怎样读取当前gethostname值,第1张

1、gethostbyname()函数属于WinSock API库,而在使用WinSock API之前,必须调用WSA-Startup函数,只有该函数成功返回(表示应用程序与WinSock库成功地建立起连接),应用程序才可以调用其他Windows Sockets DLL中的函数。当程序将要结束时,又必须调用WSACleanup 函数进行清理工作,以便释放其占用的资源。WSACleanup 函数用来结束Windows Sockets DLL的使用。

2、例程:

char hostname[256]

    int iRet = 0

    WSADATA wsaData

    if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL

    { 

        printf("Winsock无法初始化!\n")

        WSACleanup()

        return 0

    }

    memset(hostname, 0, 256)

    iRet = gethostname(hostname, sizeof(hostname))

    if(iRet != 0 )

    {

        printf( "get hostname error:%d\n", iRet)

    }

    printf("%s\n", hostname)

c语言本身是不提供的。

在windows下使用系统命令或windows.h

//列子

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#include "stdio.h"

#include "conio.h"

main()

{

int i,j

char ip[20]

char temp[100]

char ch='\0'

FILE *fp

system("ipconfig >d:\\myip.txt")

if ((fp=fopen("d:\\myip.txt","r"))==NULL)

{

printf("the file can not open:\nPress any key to exit:")

getch()

exit(1)

}

for (i=0i<7i++)

{fgets(temp,80,fp)/*跳过一些行*/

/*printf("%s\n",temp)*/}

fgets(temp,80,fp)

i=0j=0

while (temp[i++]!=':')

while (temp[i]!='\n')

ip[j++]=temp[i++]

ip[j]=0

printf("IP=%s\n",ip)

fclose(fp)

system("del d:\\myip.txt")


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/141138.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存