『壹』 我們的寒假作業,用c語言寫一個程序(IP查詢系統,詳細如下),謝了!有思路也行,看一下吧,謝謝了!
如果只是讀寫增刪的話,用c標准庫就可以實現,格式化的話通過調用外部程序,比如format來實現。當然通過windows api也可以做到,不過不熟悉的話可能有點小困難
『貳』 c語言怎樣編寫顯示本機ip地址的程序
...
struct
in_addr
addr;
hostent
*pHost
=
::gethostbyname("localhost");//在此寫入你自己電腦主機名字
switch
(pHost->h_addrtype)
{
case
AF_INET:
printf("internet網路地址類型(AF_INET)\n");
break;
case
AF_INET6:
printf("internet網路地址類型(AF_INET)\n");
break;
case
AF_NETBIOS:
printf("netbios網路地址類型(AF_NETBIOS)\n");
break;
default:
printf("其它地址類型
%d\n",
pHost->h_addrtype);
break;
}
printf("\t地址長度:
%d(位元組)\n",
pHost->h_length);
addr.s_addr
=
*(u_long
*)
pHost->h_addr_list[0];
printf("\t第一個IP地址為:
%s\n",
inet_ntoa(addr));
...
『叄』 編程:C語言編程取得本機ip地址
取本地地址
可以從「開始」-「程序」-「附件」-「命令提示符」裡面輸入英文「ipconfig/all」就可得到IP地址了,LINUX我也不太懂了。
『肆』 C語言如何實現IP地址查詢系統
C語言如何實現IP地址查詢系統
參考如下:
voidGetNameAndIp()
{
structhostent*host;
structin_addr*ptr;
DWORDdwScope=RESOURCE_CONTEXT;
NETRESOURCE*NetResource=NULL;
HANDLEhEnum;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&hEnum);
WSADATAwsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if(hEnum)
{
DWORDCount=0xFFFFFFFF;
DWORDBufferSize=10240;
LPVOIDBuffer=newchar[10240];
WNetEnumResource(hEnum,&Count,Buffer,&BufferSize);
NetResource=(NETRESOURCE*)Buffer;
charszHostName[200];
for(unsignedinti=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if(NetResource->dwUsage==RESOURCEUSAGE_CONTAINER&&NetResource->dwType==RESOURCETYPE_ANY)
{
if(NetResource->lpRemoteName)
{
CStringstrFullName=NetResource->lpRemoteName;
if(0==strFullName.Left(2).Compare(_T("\\")))
strFullName=strFullName.Right(strFullName.GetLength()-2);
gethostname(szHostName,strlen(szHostName));
USES_CONVERSION;
char*pchar=T2A(strFullName);
host=gethostbyname(pchar);
if(host==NULL)continue;
ptr=(structin_addr*)host->h_addr_list[0];
stringstr="";
for(intn=0;n<4;n++)
{
CStringaddr;
if(n>0)
{
str+=".";
}
intvalue=(unsignedint)((unsignedchar*)host->h_addr_list[0])[n];
charp[20];
sprintf(p,"%d",value);
str.append(p);
}
std::cout<<"IP:"<<str<<"Name:"<<host->h_name<<std::endl;
}
}
}
deleteBuffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}
『伍』 c語言編程 實現ip地址查找 方法用二進制trie
不知道您有沒有學習過計算機網路。如果沒有,下面簡單介紹一下IP地址和掩碼。
IP地址是32位的,也就是4位元組。取值可以任意。
掩碼也是32位的,一般建議前面的位都為1,後面的位都為0。所以本題:
(1)只要是32位的都是有效的。
(2)判斷是否全1後面接全0.
(3)如果掩碼的前n位為1,那麼此IP所在網路全部有效IP地址是此IP地址的前n位不變,後面的位從全0到全1,比如IP地址為1.1.1.1掩碼為FFFF0000,那麼此IP地址所在網路的全部有效IP地址是從1.1.0.0到1.1.255.255。
(4)兩個IP地址都與掩碼進行二進制與,看得到的結果是否相同,如果相同則在同一子網中,否則不在同一子網中。這個用c很容易實現。
『陸』 C語言IP地址查詢系統如何實現
C語言如何實現IP地址查詢系統
參考如下:
voidGetNameAndIp()
{
structhostent*host;
structin_addr*ptr;
DWORDdwScope=RESOURCE_CONTEXT;
NETRESOURCE*NetResource=NULL;
HANDLEhEnum;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&hEnum);
WSADATAwsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if(hEnum)
{
DWORDCount=0xFFFFFFFF;
DWORDBufferSize=10240;
LPVOIDBuffer=newchar[10240];
WNetEnumResource(hEnum,&Count,Buffer,&BufferSize);
NetResource=(NETRESOURCE*)Buffer;
charszHostName[200];
for(unsignedinti=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if(NetResource->dwUsage==RESOURCEUSAGE_CONTAINER&&NetResource->dwType==RESOURCETYPE_ANY)
{
if(NetResource->lpRemoteName)
{
CStringstrFullName=NetResource->lpRemoteName;
if(0==strFullName.Left(2).Compare(_T("\\")))
strFullName=strFullName.Right(strFullName.GetLength()-2);
gethostname(szHostName,strlen(szHostName));
USES_CONVERSION;
char*pchar=T2A(strFullName);
host=gethostbyname(pchar);
if(host==NULL)continue;
ptr=(structin_addr*)host->h_addr_list[0];
stringstr="";
for(intn=0;n<4;n++)
{
CStringaddr;
if(n>0)
{
str+=".";
}
intvalue=(unsignedint)((unsignedchar*)host->h_addr_list[0])[n];
charp[20];
sprintf(p,"%d",value);
str.append(p);
}
std::cout<<"IP:"<<str<<"Name:"<<host->h_name<<std::endl;
}
}
}
deleteBuffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}
『柒』 如何用C語言 編寫ip地址數組呢
C語言的發展過程 C語言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的「THE C PROGRAMMING LANGUAGE」一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准學會在此基礎上制定了一個C 語言標准,於一九八三年發表。通常稱之為ANSI C。 當代最優秀的程序設計語 早期的C語言主要是用於UNIX系統。由於C語言的強大功能和各方面的優點逐漸為人們認識,到了八十年代,C開始進入其它操作系統,並很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優秀的程序設計語言之一。 C語言的特點 C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。 C語言版本目前最流行的C語言有以下幾種: ·Microsoft C 或稱 MS C ·Borland Turbo C 或稱 Turbo C·AT&T C這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。 面向對象的程序設計語言 在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向 對象的程序設計語言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。
『捌』 用c語言 編寫或c++ IP(不要使用windows網路編程)
typedef struct _ip{
union
{
byte w0,w1,w2,w3;
byte w[4];
};
}IP;
後面的自己編程試試,不會的上代碼再問,你這直接讓人幫寫程序,誰那麼多時間呀!
『玖』 用C語言編程顯示主機IP地址!
最簡單的方法是用 ipconfig
為了把數取出來,放到程序里好使用,可以把 ipconfig內容 存入C:\\TEMP\\tmp.ip, 再取出來用。
下面程序運行完,IP 的 4 段 整數 存在 d1,d2,d3,d4 里。
#include <stdio.h>
void main()
{
FILE *fin;
char namein[]="C:\\TEMP\\tmp.ip";
char str1[64],str2[64];
char one_line[80];
char cmd[120];
int i,j,k;
int d1,d2,d3,d4;
sprintf(cmd,"ipconfig > %s",namein);
system(cmd);
fin = fopen(namein,"r");
while ( fgets(&one_line[0],80,fin) !=NULL ){
j = sscanf(one_line,"%s %s",&str1[0],&str2[0]);
if (j == 2 && strncmp(str2,"Address",7) ==0 ) {
for (i=1;i<50;i++) if (one_line[i] ==':') k = i;
break;
};
};
fclose(fin);
sscanf(&one_line[0]+k+1,"%d.%d.%d.%d", &d1,&d2,&d3,&d4);
printf("%d %d %d %d\n",d1,d2,d3,d4);
exit(0);
}
『拾』 如何用C語言編寫一個自動定時更換本機IP地址的代碼可用於WIFI連接的電腦。
WIFI連接,一般都是由連接的路由器上的DHCP自動分配的,即使自行修改,也不能修改連接的路由器上的公網IP地址,連接網路後,使用的還是路由器上的公網地址,能修改的只是本地的IP地址。
只要定時執行設置本地IP地址即可,代碼僅供參考:
ManagementBaseObjectinPar=null;
ManagementBaseObjectoutPar=null;
ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollectionmoc=mc.GetInstances();
foreach(ManagementObjectmoinmoc)
{
if(!(bool)mo["IPEnabled"])
continue;
inPar=mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"]=newstring[]{"192.168.0.111"};
outPar=mo.InvokeMethod("EnableStatic",inPar,null);
}