Subversion Repositories userdetect2

Compare Revisions

No changes between revisions

Regard whitespace Rev 92 → Rev 93

/trunk/UserDetect2/Plugins/NetworkUtils.pas
16,7 → 16,12
implementation
 
uses
iphlpapi, IpTypes, Iprtrmib, WinSock, Registry;
{$IFDEF UNICODE}
iphlpapi, IpTypes, Iprtrmib,
{$ELSE}
iphlp,
{$ENDIF}
WinSock, Registry;
 
// TODO: Replace GetAdaptersInfo()? A comment at MSDN states that there might be problems with IPv6
// "GetAdaptersInfo returns ERROR_NO_DATA if there are only IPv6 interfaces
27,7 → 32,7
pAdapterInfo: PIP_ADAPTER_INFO;
addr: AnsiString;
addrStr: IP_ADDR_STRING;
BufLen: Cardinal;
BufLen: ULONG;
begin
BufLen := SizeOf(IP_ADAPTER_INFO);
Result := GetAdaptersInfo(nil, BufLen);
59,7 → 64,7
pAdapterInfo: PIP_ADAPTER_INFO;
addr: AnsiString;
addrStr: IP_ADDR_STRING;
BufLen: Cardinal;
BufLen: ULONG;
begin
BufLen := SizeOf(IP_ADAPTER_INFO);
Result := GetAdaptersInfo(nil, BufLen);
91,7 → 96,7
pAdapterInfo: PIP_ADAPTER_INFO;
addr: AnsiString;
addrStr: IP_ADDR_STRING;
BufLen: Cardinal;
BufLen: ULONG;
begin
BufLen := SizeOf(IP_ADAPTER_INFO);
Result := GetAdaptersInfo(nil, BufLen);
151,7 → 156,7
function GetLocalMACAddressList(outSL: TStrings): DWORD;
var
pIfTable: PMIB_IFTABLE;
TableSize: Cardinal;
TableSize: ULONG;
tmp: String;
i, j: Integer;
begin
/trunk/UserDetect2/Plugins/iphlp.pas
0,0 → 1,165
unit iphlp;
 
interface
 
uses
Windows;
 
const
MAX_INTERFACE_NAME_LEN = $100;
ERROR_SUCCESS = 0;
MAXLEN_IFDESCR = $100;
MAXLEN_PHYSADDR = 8;
 
MIB_IF_OPER_STATUS_NON_OPERATIONAL = 0 ;
MIB_IF_OPER_STATUS_UNREACHABLE = 1;
MIB_IF_OPER_STATUS_DISCONNECTED = 2;
MIB_IF_OPER_STATUS_CONNECTING = 3;
MIB_IF_OPER_STATUS_CONNECTED = 4;
MIB_IF_OPER_STATUS_OPERATIONAL = 5;
 
MIB_IF_TYPE_OTHER = 1;
MIB_IF_TYPE_ETHERNET = 6;
MIB_IF_TYPE_TOKENRING = 9;
MIB_IF_TYPE_FDDI = 15;
MIB_IF_TYPE_PPP = 23;
MIB_IF_TYPE_LOOPBACK = 24;
MIB_IF_TYPE_SLIP = 28;
 
MIB_IF_ADMIN_STATUS_UP = 1;
MIB_IF_ADMIN_STATUS_DOWN = 2;
MIB_IF_ADMIN_STATUS_TESTING = 3;
 
type
MIB_IFROW = packed record
wszName: Array[0 .. (MAX_INTERFACE_NAME_LEN*2-1)] of AnsiChar;
dwIndex: LongInt;
dwType: LongInt;
dwMtu: LongInt;
dwSpeed: LongInt;
dwPhysAddrLen: LongInt;
bPhysAddr: Array[0 .. (MAXLEN_PHYSADDR-1)] of Byte;
dwAdminStatus: LongInt;
dwOperStatus: LongInt;
dwLastChange: LongInt;
dwInOctets: LongInt;
dwInUcastPkts: LongInt;
dwInNUcastPkts: LongInt;
dwInDiscards: LongInt;
dwInErrors: LongInt;
dwInUnknownProtos: LongInt;
dwOutOctets: LongInt;
dwOutUcastPkts: LongInt;
dwOutNUcastPkts: LongInt;
dwOutDiscards: LongInt;
dwOutErrors: LongInt;
dwOutQLen: LongInt;
dwDescrLen: LongInt;
bDescr: Array[0 .. (MAXLEN_IFDESCR - 1)] of AnsiChar;
end;
 
const
MAX_HOSTNAME_LEN = 128;
MAX_DOMAIN_NAME_LEN = 128;
MAX_SCOPE_ID_LEN = 256;
 
MAX_ADAPTER_NAME_LENGTH = 256;
MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
MAX_ADAPTER_ADDRESS_LENGTH = 8;
 
IPHelper = 'iphlpapi.dll';
 
type
PIPAddressString = ^TIPAddressString;
PIPMaskString = ^TIPAddressString;
TIPAddressString = packed record
_String: array[0..(4 * 4) - 1] of AnsiChar;
end;
TIPMaskString = TIPAddressString;
PIPAddrString = ^TIPAddrString;
TIPAddrString = packed record
Next: PIPAddrString;
IpAddress: TIPAddressString;
IpMask: TIPMaskString;
Context: DWORD;
end;
PFixedInfo = ^TFixedInfo;
TFixedInfo = packed record
HostName: array[0..MAX_HOSTNAME_LEN + 4 - 1] of AnsiChar;
DomainName: array[0..MAX_DOMAIN_NAME_LEN + 4 - 1] of AnsiChar;
CurrentDnsServer: PIPAddrString;
DnsServerList: TIPAddrString;
NodeType: UINT;
ScopeId: array[0..MAX_SCOPE_ID_LEN + 4 - 1] of AnsiChar;
EnableRouting,
EnableProxy,
EnableDns: UINT;
end;
 
IP_ADDRESS_STRING = packed record
S: array [0..15] of AnsiChar;
end;
IP_MASK_STRING = IP_ADDRESS_STRING;
PIP_MASK_STRING = ^IP_MASK_STRING;
 
PIP_ADDR_STRING = ^IP_ADDR_STRING;
IP_ADDR_STRING = packed record
Next: PIP_ADDR_STRING;
IpAddress: IP_ADDRESS_STRING;
IpMask: IP_MASK_STRING;
Context: DWORD;
end;
 
PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
IP_ADAPTER_INFO = packed record
Next: PIP_ADAPTER_INFO;
ComboIndex: DWORD;
AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of AnsiChar;
Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of AnsiChar;
AddressLength: UINT;
Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;
Index: DWORD;
Type_: UINT;
DhcpEnabled: UINT;
CurrentIpAddress: PIP_ADDR_STRING;
IpAddressList: IP_ADDR_STRING;
GatewayList: IP_ADDR_STRING;
DhcpServer: IP_ADDR_STRING;
HaveWins: BOOL;
PrimaryWinsServer: IP_ADDR_STRING;
SecondaryWinsServer: IP_ADDR_STRING;
LeaseObtained: Cardinal;
LeaseExpires: Cardinal;
end;
 
const
ANY_SIZE = 1;
{$EXTERNALSYM ANY_SIZE}
 
type
PMIB_IFTABLE = ^MIB_IFTABLE;
{$EXTERNALSYM PMIB_IFTABLE}
_MIB_IFTABLE = record
dwNumEntries: DWORD;
table: array [0..ANY_SIZE - 1] of MIB_IFROW;
end;
{$EXTERNALSYM _MIB_IFTABLE}
MIB_IFTABLE = _MIB_IFTABLE;
{$EXTERNALSYM MIB_IFTABLE}
TMibIftable = MIB_IFTABLE;
PMibIftable = PMIB_IFTABLE;
 
function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO; var pOutBufLen: {P}ULONG): DWORD; stdcall;
function GetNetworkParams(pFixedInfo: PFixedInfo; var pOutBufLen: {P}ULONG): DWORD; stdcall;
function SendArp(DestIP, SrcIP: {IPAddr}Cardinal; pMacAddr: PULONG; var PhyAddrLen: {P}ULONG) : DWORD; stdcall;
function GetIfTable(pIfTable: PMIB_IFTABLE; var pdwSize: {P}ULONG; bOrder: BOOL): DWORD; stdcall;
 
implementation
 
function GetAdaptersInfo; external IPHelper Name 'GetAdaptersInfo';
function GetNetworkParams; external IPHelper Name 'GetNetworkParams';
function SendArp; external IPHelper name 'SendARP';
function GetIfTable; external IPHelper Name 'GetIfTable';
 
end.
 
/trunk/vcl/VTSCompat.pas
119,7 → 119,7
end;
{$ELSE}
begin
result := OpenDialog.Execute;
result := SaveDialog.Execute;
{$IFEND}
end;
 
/trunk/vcl/ViaThinkSoft.dpk
1,6 → 1,7
package dclusr;
package ViaThinkSoft;
 
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{ ASSERTIONS ON}
{$BOOLEVAL OFF}
11,17 → 12,19
{ LOCALSYMBOLS OFF}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO OFF}
{$SAFEDIVIDE OFF}
{ STACKFRAMES OFF}
{ STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $51000000}
{$DEFINE DEBUG}
{$ENDIF IMPLICITBUILDING}
{$DESCRIPTION 'ViaThinkSoft VCL Components'}
{$LIBSUFFIX '60'}
{$DESIGNONLY}
/trunk/vcl/ViaThinkSoft.dproj
0,0 → 1,110
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{22278885-C983-4452-8FF1-D66A194B16DA}</ProjectGuid>
<MainSource>ViaThinkSoft.dpk</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Package</AppType>
<FrameworkType>VCL</FrameworkType>
<ProjectVersion>18.1</ProjectVersion>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
<Base_Win32>true</Base_Win32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
<Cfg_2>true</Cfg_2>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<DCC_DebugInformation>0</DCC_DebugInformation>
<DCC_N>true</DCC_N>
<DCC_WriteableConstants>true</DCC_WriteableConstants>
<DllSuffix>60</DllSuffix>
<SanitizedProjectName>ViaThinkSoft</SanitizedProjectName>
<DCC_K>false</DCC_K>
<GenDll>true</GenDll>
<DCC_UNSAFE_CAST>true</DCC_UNSAFE_CAST>
<DCC_UNSAFE_TYPE>true</DCC_UNSAFE_TYPE>
<VerInfo_Locale>1031</VerInfo_Locale>
<DCC_F>false</DCC_F>
<DCC_UNSAFE_CODE>true</DCC_UNSAFE_CODE>
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Description>ViaThinkSoft VCL Components</DCC_Description>
<DCC_S>false</DCC_S>
<DCC_E>false</DCC_E>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<DCC_ImageBase>51000000</DCC_ImageBase>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace>
<GenPackage>true</GenPackage>
<DesignOnlyPackage>true</DesignOnlyPackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>vcl;rtl;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_Locale>1033</VerInfo_Locale>
<Icon_MainIcon>ViaThinkSoft_Icon.ico</Icon_MainIcon>
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_Optimize>false</DCC_Optimize>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
</PropertyGroup>
<ItemGroup>
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="rtl.dcp"/>
<DCCReference Include="vcl.dcp"/>
<DCCReference Include="designide.dcp"/>
<DCCReference Include="VTSListView.pas"/>
<DCCReference Include="AlphaNumSort.pas"/>
<DCCReference Include="VTSCompat.pas"/>
<DCCReference Include="PatchU.pas"/>
<BuildConfiguration Include="Debug">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
<BuildConfiguration Include="Base">
<Key>Base</Key>
</BuildConfiguration>
<BuildConfiguration Include="Release">
<Key>Cfg_1</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality>
<Source>
<Source Name="MainSource">ViaThinkSoft.dpk</Source>
</Source>
</Delphi.Personality>
<Platforms>
<Platform value="Win32">True</Platform>
</Platforms>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
</Project>
/trunk/vcl/ViaThinkSoft.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/vcl/ViaThinkSoft_Icon.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/trunk/vcl
Property changes:
Modified: svn:ignore
__history
*.local
*.identcache
+*.stat