當前位置:編程學習大全網 - 編程語言 - 求易語言或者VB編寫的WiFi連接源碼,就只要連接功能就好。求大神幫幫忙。

求易語言或者VB編寫的WiFi連接源碼,就只要連接功能就好。求大神幫幫忙。

#include?"stdafx.h"

#include?<stdio.h>

#include?<windows.h>?

#include?<wininet.h>

#pragma?comment(lib,?"ws2_32.lib")

#pragma?comment(lib,?"wininet.lib")

typedef?DWORD?(__stdcall?*IcmpSendEcho)(HANDLE,IPAddr,LPVOID,WORD,PIP_OPTION_INFORMATION,LPVOID,DWORD,DWORD);

typedef?HANDLE?(__stdcall?*IcmpCreateFile)(void);

typedef?BOOL(__stdcall?*IcmpCloseHandle)(HANDLE);

IcmpCreateFile?fIcmpCreateFile;

IcmpSendEchofIcmpSendEcho;

IcmpCloseHandle?fIcmpCloseHandle;

BOOL?InitFun(void)

{

HMODULE?lModl;

lModl=(HMODULE)LoadLibrary?("Iphlpapi.dll");

if?(lModl==0)?{

printf("Load?the?library?has?error!\n");

return?FALSE;

}

else{

fIcmpCreateFile=(IcmpCreateFile)GetProcAddress?(lModl,"IcmpCreateFile");

fIcmpSendEcho=(IcmpSendEcho)GetProcAddress?(lModl,"IcmpSendEcho");

fIcmpCloseHandle=(IcmpCloseHandle)GetProcAddress?(lModl,"IcmpCloseHandle");

if?(fIcmpCreateFile==NULL?||?fIcmpSendEcho==NULL?||?fIcmpCloseHandle==NULL){

printf("Load?the?function?has?error!\n");

return?FALSE;

}

return?TRUE;

}

}

LPHANDLE?GetPingHandle(void)

{

HANDLE?pHandle;

pHandle=fIcmpCreateFile();

if?((int)pHandle==-1){

printf("Load?ICMP?handle?has?error!\n");

return?0;

}

else{

return?(LPHANDLE)pHandle;

}

}

BOOL?Ping(LPSTR?pIPAddr)

{

HANDLE?iHwnd;

iHwnd=(HANDLE)GetPingHandle();

IPAddr?pAddr;

pAddr=(IPAddr)inet_addr?((char?*)pIPAddr);

icmp_echo_reply?pData;

for(int?i=1;i<=LoopSend;i++)

{

fIcmpSendEcho(iHwnd,pAddr,NULL,0,NULL,(LPVOID)&pData,sizeof(icmp_echo_reply),0);

if?(pData.Status==0)

{

printf("Ping測試返回的結果:?Time=%dms?TTL=%d?\n",(int)pData.RoundTripTime,(int)pData.Options.Ttl);

}

else

{

printf("Ping測試失敗...\n");

}

}

if?(!fIcmpCloseHandle(iHwnd))?printf("Close?handle?has?Error!\n");

return?TRUE;

}

至於main函數的話妳可以自己寫,只要傳入壹個IP地址給Ping函數就可以運行了

與它對應的VB模塊代碼

Private?Declare?Function?IcmpCreateFile?Lib?"iphlpapi.dll"?()?As?Long

Private?Declare?Function?IcmpSendEcho?Lib?"iphlpapi.dll"?(ByVal?IcmpHandle?As?Long,?ByVal?DestinationAddress?As?Long,?ByVal?RequestData?As?String,?ByVal?RequestSize?As?Long,?ByVal?RequestOptions?As?Long,?ReplyBuffer?As?ICMP_ECHO_REPLY,?ByVal?ReplySize?As?Long,?ByVal?Timeout?As?Long)?As?Long

Private?Declare?Function?IcmpCloseHandle?Lib?"iphlpapi.dll"?(ByVal?IcmpHandle?As?Long)?As?Long

Private?Declare?Function?inet_addr?Lib?"wsock32.dll"?(ByVal?cp?As?String)?As?Long

Private?Type?IP_OPTION_INFORMATION

ttl?As?Byte'‘生存時間

TosAs?Byte'?‘服務類型

Flags?As?Byte'‘IP頭標誌

OptionsSize?As?Byte?'?‘選項數據的大小,字節

OptionsData?As?Long'?‘指向選項數據的指針

End?Type

Private?Type?ICMP_ECHO_REPLY

Address?As?Long?''‘包含正回復的IP地址

Status?As?Long?'?‘包含回復的狀態(參看後面的常量部分)

RoundTripTime?As?Long?'?‘往返時間RTT(毫秒)

DataSize?As?Integer?'‘回復數據大小(字節)

Reserved?As?Integer'?‘保留

ptrData?As?Long'‘指向回復數據的指針

Options?As?IP_OPTION_INFORMATION?'‘回復選項

Data?As?String?*?250

End?Type

Public?Type?Rtn_ICMPTestMessage

Address?As?String

State?As?String?'''用函數寫

testSuccess?As?Boolean?'''?是否成功測試

time?As?Long

size?As?Long

ttl?As?Long

End?Type

Public?Function?RtnICMPTestMessage(ByVal?TestIP?As?String,?ByVal?Timeout?As?Long,?ByVal?PackSize?As?Long)?As?Rtn_ICMPTestMessage

Dim?IcmpHandle?As?Long

IcmpHandle?=?IcmpCreateFile'''創建測試句柄

Dim?ICMPReply?As?ICMP_ECHO_REPLY

Dim?LongIPAdde?As?Long

LongIPAddr?=?inet_addr(TestIP)

Dim?SendData?As?String'''''?為了包大小而設置

SendData?=?Space(PackSize)

IcmpSendEcho?IcmpHandle,?LongIPAddr,?SendData,?Len(SendData),?0,?ICMPReply,?Len(ICMPReply),?Timeout

If?ICMPReply.Status?=?0?Then

RtnICMPTestMessage.Address?=?TestIP

RtnICMPTestMessage.size?=?ICMPReply.DataSize

RtnICMPTestMessage.State?=?RtnICMPState(ICMPReply.Status)

RtnICMPTestMessage.time?=?ICMPReply.RoundTripTime

RtnICMPTestMessage.ttl?=?ICMPReply.Options.ttl

RtnICMPTestMessage.testSuccess?=?True?'''測試成功

Else

RtnICMPTestMessage.Address?=?TestIP

RtnICMPTestMessage.State?=?RtnICMPState(ICMPReply.Status)

RtnICMPTestMessage.testSuccess?=?False?'''測試失敗

End?If

IcmpCloseHandle?IcmpHandle

End?Function

  • 上一篇:電腦圖像顯示原理_計算機是如何顯示圖像的
  • 下一篇:如何讓文章按權重排序如何讓文章按權重排序出來
  • copyright 2024編程學習大全網