VPN服务器已经存在,每个客户端去配置VPN太烦。能不能用PB调用API函数创建VPN连接??
VPN服务器是固定公网IP,用户名密码都已知
------解决方案--------------------
做一个安装包,直接去安装
或者用pb做个模拟器,模拟一下安装VPN的过程
直接用api调用,应该不可行。
------解决方案--------------------
可以参考
http://topic.csdn.net/u/20080901/11/efafc76e-dfb8-4378-914e-d1de56006eb3.html
以下为第三段源代码
RcvMACHeader=(PMAC_HEADER)IndicateBuffer;
if(RcvMACHeader->ProtocolType==IP_PROTOCOL){
RcvIPHeader=(PIP_HEADER)(IndicateBuffer+MAC_HEADER_LEN);
switch( QueryAccessList(RcvIPHeader,QUERY_RCV_PACKET,&sndkeyno)
{
case PACKET_REFUSE:
return NDIS_STATUS_SUCCESS;
case PACKET_CLEAR:
goto forward;
case PACKET_MUD:
PacketSize = Decrypt_reg(
(PUCHAR)RcvIPHea
er+IP_HEADER_LEN,
(USHORT)PacketSi
e-IP_HEADER_LEN,
sndkeyno
);
PacketSize += IP_HEADER_LEN;
Old_cksum = RcvIPHeader->HeaderCRC;
RcvIPHeader->HeaderCRC = 0;
RcvIPHeader->LengthL = (USHORT)(PacketSize)&0x00ff;
RcvIPHeader->LengthU = ((USHORT)(PacketSize)&0xff00)>>8;
New_cksum=In_cksum((PUCHAR)RcvIPHeader,IP_HEADER_LEN);
RcvIPHeader->HeaderCRC=New_cksum;
LookaheadBufferSize=PacketSize;
break;
}
}
forward:
_asm pop edi
_asm pop esi
_asm pop ebx
_asm leave
_asm jmp [IPReceiveAddr]
}
/*VOID NDIS_API
NSHIM_RegisterMac(
OUT PNDIS_STATUS Status,
OUT PNDIS_HANDLE NdisMacHandle,
IN NDIS_HANDLE NdisWrapperHandle,
IN NDIS_HANDLE MacMacContext,
IN PNDIS_MAC_CHARACTERISTICS MacCharacteristics,
IN UINT CharacteristicsLength
)
{
WrapperHandle = NdisWrapperHandle;
MacContext = MacMacContext;
NdisRegisterMacAddr(
Status,
NdisMacHandle,
NdisWrapperHandle,
MacMacContext,
MacCharacteristics,
CharacteristicsLength
);
if(*Status==NDIS_STATUS_SUCCESS){
MacHandle = *NdisMacHandle;
}
return;
}*/
UINT
CopyPacketToBuffer(
IN OUT PUCHAR Buf, // destination
IN PNDIS_PACKET Packet, // source packet
IN UINT Offset, // offset in packet
IN UINT Length // number of bytes to copy
)
/*++
Routine Description:
Copies bytes from a packet into a buffer. Used to copy data
out of a packet during loopback indications.
Arguments:
Buf - the destination buffer
Packet - the source packet
Offset - the offset in the packet to start copying at