15 #define WIN32_NO_STATUS 144 static TCHAR szNode[14];
180 static TCHAR szIntType[25];
232 static TCHAR MacAddr[20];
234 _stprintf(MacAddr,
_T(
"%02x-%02x-%02x-%02x-%02x-%02x"),
235 Mac[0], Mac[1], Mac[2], Mac[3], Mac[4], Mac[5]);
271 LPTSTR PrePath =
_T(
"SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\");
272 LPTSTR PostPath =
_T(
"\\Connection");
301 if (ConTypeTmp ==
NULL)
348 TCHAR szPrePath[] =
_T(
"SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002bE10318}\\");
391 PathSize *
sizeof(
TCHAR));
412 _T(
"NetCfgInstanceId"),
421 if (lpKeyClass ==
NULL)
425 _T(
"NetCfgInstanceId"),
439 if (!
lstrcmp(lpClass, lpKeyClass))
454 if (lpConDesc ==
NULL)
479 if (hBaseKey !=
NULL)
485 if (lpKeyClass !=
NULL)
497 ULONG adaptOutBufLen = 0;
499 ULONG netOutBufLen = 0;
501 ULONG ulPerAdapterInfoLength = 0;
503 DWORD dwDomainNameSize = 0;
509 if (dwDomainNameSize > 0)
513 dwDomainNameSize *
sizeof(
TCHAR));
514 if (pszDomainName !=
NULL)
525 if (pAdapterInfo ==
NULL)
548 if (pFixedInfo ==
NULL)
564 pAdapter = pAdapterInfo;
566 _tprintf(
_T(
"\nReactOS IP Configuration\n\n"));
570 _tprintf(
_T(
"\tPrimary DNS Suffix. . . . . . . . : %s\n"), (pszDomainName !=
NULL) ? pszDomainName :
"");
573 _tprintf(
_T(
"\tIP Routing Enabled. . . . . . . . : Yes\n"));
575 _tprintf(
_T(
"\tIP Routing Enabled. . . . . . . . : No\n"));
577 _tprintf(
_T(
"\tWINS Proxy enabled. . . . . . . . : Yes\n"));
579 _tprintf(
_T(
"\tWINS Proxy enabled. . . . . . . . : No\n"));
580 if (pszDomainName !=
NULL && pszDomainName[0] != 0)
582 _tprintf(
_T(
"\tDNS Suffix Search List. . . . . . : %s\n"), pszDomainName);
593 LPTSTR IntType, myConType;
602 _tprintf(
_T(
"\n%s %s: \n\n"), IntType , myConType);
609 if (pPerAdapterInfo !=
NULL)
619 _tprintf(
_T(
"\tMedia State . . . . . . . . . . . : Media disconnected\n"));
629 _tprintf(
_T(
"\tDescription . . . . . . . . . . . : %s\n"), lpDesc);
636 _tprintf(
_T(
"\tDHCP Enabled. . . . . . . . . . . : Yes\n"));
637 if (pPerAdapterInfo !=
NULL)
640 _tprintf(
_T(
"\tAutoconfiguration Enabled . . . . : Yes\n"));
642 _tprintf(
_T(
"\tAutoconfiguration Enabled . . . . : No\n"));
647 _tprintf(
_T(
"\tDHCP Enabled. . . . . . . . . . . : No\n"));
654 pAdapter = pAdapter->
Next;
663 _tprintf(
_T(
"\tDefault Gateway . . . . . . . . . :\n"));
672 _tprintf(
_T(
"\tDNS Servers . . . . . . . . . . . : "));
677 _tprintf(
_T(
"\t\t\t\t\t %s\n"), pIPAddr ->IpAddress.String );
678 pIPAddr = pIPAddr->
Next;
696 pPerAdapterInfo =
NULL;
698 pAdapter = pAdapter->
Next;
720 ULONG ulOutBufLen = 0;
738 _tprintf(
_T(
"\nAn error occured while releasing interface %ls : \n"), AdapterInfo.
Name);
781 ULONG ulOutBufLen = 0;
814 _tprintf(
_T(
"\nAn error occured while renew interface %s : "),
_T(
"*name*"));
841 _tprintf(
_T(
"\nReactOS IP Configuration\n\n"));
844 _tprintf(
_T(
"The DNS Resolver Cache has been deleted.\n"));
853 _tprintf(
_T(
"\nSorry /registerdns is not implemented yet\n"));
868 pQueryResults =
NULL;
880 _tprintf(
_T(
"\t----------------------------------------\n"));
886 _tprintf(
_T(
"\t----------------------------------------\n"));
893 _tprintf(
_T(
"\t----------------------------------------\n"));
895 pThisRecord = pQueryResults;
896 while (pThisRecord !=
NULL)
898 pNextRecord = pThisRecord->pNext;
900 _tprintf(
_T(
"\tRecord Name . . . . . : %S\n"), pThisRecord->pName);
901 _tprintf(
_T(
"\tRecord Type . . . . . : %hu\n"), pThisRecord->wType);
902 _tprintf(
_T(
"\tTime To Live. . . . . : %lu\n"), pThisRecord->dwTtl);
903 _tprintf(
_T(
"\tData Length . . . . . : %hu\n"), pThisRecord->wDataLength);
905 switch (pThisRecord->Flags.S.Section)
908 _tprintf(
_T(
"\tSection . . . . . . . : Question\n"));
912 _tprintf(
_T(
"\tSection . . . . . . . : Answer\n"));
916 _tprintf(
_T(
"\tSection . . . . . . . : Authority\n"));
920 _tprintf(
_T(
"\tSection . . . . . . . : Additional\n"));
924 switch (pThisRecord->wType)
927 Addr4.
S_un.
S_addr = pThisRecord->Data.A.IpAddress;
929 _tprintf(
_T(
"\tA (Host) Record . . . : %S\n"), szBuffer);
933 _tprintf(
_T(
"\tNS Record . . . . . . : %S\n"), pThisRecord->Data.NS.pNameHost);
937 _tprintf(
_T(
"\tCNAME Record. . . . . : %S\n"), pThisRecord->Data.CNAME.pNameHost);
945 _tprintf(
_T(
"\tPTR Record. . . . . . : %S\n"), pThisRecord->Data.PTR.pNameHost);
955 _tprintf(
_T(
"\tAAAA Record . . . . . : %S\n"), szBuffer);
968 pThisRecord = pNextRecord;
980 _tprintf(
_T(
"\nReactOS IP Configuration\n\n"));
988 if (DnsEntry ==
NULL)
991 pThisEntry = DnsEntry;
992 while (pThisEntry !=
NULL)
994 pNextEntry = pThisEntry->
pNext;
996 if (pThisEntry->wType1 != 0)
999 if (pThisEntry->wType2 != 0)
1002 if (pThisEntry->pszName)
1006 pThisEntry = pNextEntry;
1029 if (lpUsage ==
NULL)
1061 if ((
argc > 1) && (
argv[1][0]==
'/' ||
argv[1][0]==
'-'))
1085 DoRegisterdns =
TRUE;
1089 DoDisplaydns =
TRUE;
1093 DoShowclassid =
TRUE;
1097 DoSetclassid =
TRUE;
1115 else if (DoFlushdns)
1117 else if (DoRegisterdns)
1119 else if (DoDisplaydns)
1126 _tprintf(
_T(
"\nSorry /release [adapter] is not implemented yet\n"));
1129 _tprintf(
_T(
"\nSorry /renew [adapter] is not implemented yet\n"));
1130 else if (DoShowclassid)
1131 _tprintf(
_T(
"\nSorry /showclassid adapter is not implemented yet\n"));
1132 else if (DoSetclassid)
1133 _tprintf(
_T(
"\nSorry /setclassid adapter is not implemented yet\n"));
1139 _tprintf(
_T(
"\nSorry /setclassid adapter [classid]is not implemented yet\n"));
DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
IP_ADAPTER_INDEX_MAP Adapter[1]
IP_ADDR_STRING DhcpServer
_In_ NDIS_ERROR_CODE ErrorCode
NTSYSAPI PWSTR NTAPI RtlIpv4AddressToStringW(_In_ const struct in_addr *Addr, _Out_writes_(16) PWCHAR S)
struct _RECORDTYPE * PRECORDTYPE
#define ERROR_NO_MORE_ITEMS
LPTSTR GetConnectionType(LPTSTR lpClass)
int _tcscmp(const _TCHAR *s1, const _TCHAR *s2)
#define ERROR_BUFFER_OVERFLOW
DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen)
IP_ADDRESS_STRING IpAddress
struct _IP_ADDR_STRING * Next
#define MIB_IF_TYPE_OTHER
IP_ADDR_STRING SecondaryWinsServer
LPTSTR GetInterfaceTypeName(UINT InterfaceType)
IN PVOID IN PVOID IN USHORT IN USHORT Size
DWORD WINAPI GetLastError(VOID)
_TCHAR * _tasctime(const struct tm *ptm)
#define DNS_INFO_NO_RECORDS
BOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD)
VOID WINAPI DnsRecordListFree(PDNS_RECORD list, DNS_FREE_TYPE type)
#define MIB_IF_TYPE_LOOPBACK
char AdapterName[MAX_ADAPTER_NAME_LENGTH+4]
struct _DNS_CACHE_ENTRY * pNext
#define DNS_ERROR_RCODE_NAME_ERROR
DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo)
LONG WINAPI RegCloseKey(HKEY hKey)
LPTSTR GetConnectionDescription(LPTSTR lpClass)
int main(int argc, char *argv[])
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen)
size_t __cdecl _tcslen(const _TCHAR *str)
DNS_STATUS WINAPI DnsQuery_W(LPCWSTR Name, WORD Type, DWORD Options, PVOID Extra, PDNS_RECORD *QueryResultSet, PVOID *Reserved)
VOID Release(LPTSTR Index)
char DomainName[MAX_DOMAIN_NAME_LEN+4]
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]
#define FORMAT_MESSAGE_FROM_SYSTEM
WCHAR Name[MAX_ADAPTER_NAME]
LPTSTR GetRecordTypeName(WORD wType)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
_In_ WDFCOLLECTION _In_ ULONG Index
BOOL WINAPI DnsGetCacheDataTable(_Out_ PDNS_CACHE_ENTRY *DnsCache)
DWORD WINAPI GetPerAdapterInfo(ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen)
#define MIB_IF_TYPE_ETHERNET
struct _RECORDTYPE RECORDTYPE
struct _IP_PER_ADAPTER_INFO * PIP_PER_ADAPTER_INFO
PTCHAR PrintMacAddr(PBYTE Mac)
#define MIB_IF_TYPE_TOKENRING
char HostName[MAX_HOSTNAME_LEN+4]
_CRTIMP struct tm *__cdecl localtime(const time_t *_Time)
#define FORMAT_MESSAGE_IGNORE_INSERTS
LPTSTR GetNodeTypeName(UINT NodeType)
PRTL_UNICODE_STRING_BUFFER Path
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HLOCAL NTAPI LocalFree(HLOCAL hMem)
IP_ADDR_STRING GatewayList
DWORD WINAPI GetIfEntry(PMIB_IFROW pIfRow)
#define DNS_QUERY_NO_WIRE_QUERY
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
#define MIB_IF_OPER_STATUS_CONNECTED
IP_ADDR_STRING PrimaryWinsServer
DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen)
static const WCHAR szName[]
#define RtlCopyMemory(Destination, Source, Length)
INTERNAL_IF_OPER_STATUS dwOperStatus
IP_ADDR_STRING DnsServerList
#define MIB_IF_OPER_STATUS_OPERATIONAL
BOOL WINAPI DnsFlushResolverCache(VOID)
#define HeapFree(x, y, z)
static const WCHAR szType[]
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
struct _IP_ADAPTER_INFO * Next
static VOID DisplayDnsRecord(PWSTR pszName, WORD wType)
union in_addr::@1010 S_un
int LoadStringAndOem(HINSTANCE hInst, UINT uID, LPTSTR szNode, int byteSize)
NTSYSAPI PWSTR NTAPI RtlIpv6AddressToStringW(_In_ const struct in6_addr *Addr, _Out_writes_(46) PWSTR S)
IP_ADDR_STRING IpAddressList
#define HKEY_LOCAL_MACHINE
#define ERROR_INSUFFICIENT_BUFFER
VOID DoFormatMessage(LONG ErrorCode)