在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")
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)
今天阿驹电脑安全就给大家粗浅地说一下如何用VC++编程获取IP以及主机名。首先告诉大家,可以通过gethostname()和gethostbyname()函数来获取计算机的主机名和IP地址。两个函数的语法格式如下:gethostname()int gethostname(char FAR * name, int namelen)name:表示返回主机名。namelen:表示字符串name的大小。获取IP地址的代码char computername[128]CString strif(gethsotname(computername,128) == 0) //获得主机名{ struct hostent * phostint i=0, j, h_len=4phost = gethostbyname(computername)m_hostname = computernamefor( j=0, j0) str+=”.”m_addr.Format(“%u”, (unsigned int)((unsigned char*)->h_addr_list[i][j] ))str+=m_addr}}m_ipaddress = strUpdataData(FALSE)欢迎分享,转载请注明来源:夏雨云
评论列表(0条)