導航:首頁 > IDC知識 > c獲取當前域名

c獲取當前域名

發布時間:2020-09-09 15:31:48

1、c++編譯的dll供C# 調用 獲取當前域名

C++有方法直接獲取到站點域名嗎?

通過cookies了?
還是通過js來獲取吧。

asp.net可以有辦法直接獲取吖。不知道你實際情況是怎麼樣的產品需求

2、怎麼用c或者c++代碼獲取默認DNS伺服器的ip

這里的代碼可以列印出電腦默認的DNS伺服器

#pragma warning(disable:4996)
#include <stdio.h>  
#include <WinSock2.h>  
#include <iphlpapi.h>  

#pragma comment(lib, "IPHLPAPI.lib")  
#pragma comment(lib, "ws2_32.lib")  
int main() // 獲取本地主機名、域名和DNS伺服器信息  
{
// 聲明變數  
FIXED_INFO * FixedInfo;     // 定義保存本地計算機網路參數信息的結構體指針  
ULONG    ulOutBufLen;       // 保存獲取到的本地計算機網路參數信息結構體鏈表的長度  
DWORD    dwRetVal;          // 調用GetNetworkParams()函數的返回值  
IP_ADDR_STRING * pIPAddr;   // 保存所有DNS伺服器的IP地址列表  

FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, sizeof(FIXED_INFO));   // 為FixedInfo結構體分配內存空間  
ulOutBufLen = sizeof(FIXED_INFO);         // 初始化ulOutBufLen變數值  

  // 第1次調用GetNetworkParams()函數,獲取返回結果的大小到ulOutBufLen中  
if (ERROR_BUFFER_OVERFLOW == GetNetworkParams(FixedInfo, &ulOutBufLen))
{
GlobalFree(FixedInfo);
FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, ulOutBufLen);
}

// 第2次調用GetNetworkParams()函數,以前面獲取的ulOutBufLen作為參數,  
if (dwRetVal = GetNetworkParams(FixedInfo, &ulOutBufLen) != ERROR_SUCCESS)
{
printf("調用GetNetworkParams()函數失敗。返回值: %08x ", dwRetVal);
}
else
{
printf(" DNS伺服器列表: ");
printf("%s ", FixedInfo->DnsServerList.IpAddress.String);

pIPAddr = FixedInfo->DnsServerList.Next;
while (pIPAddr)
{
printf(" %s ", pIPAddr->IpAddress.String);
pIPAddr = pIPAddr->Next;
}
}
printf("按下回車鍵結束 ");
getchar();
return 0;
}

3、java如何獲取計算機域名

request.getRemoteAddr()

或者
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

這兩種都可以

4、怎樣獲得本機域名

在DOS 狀態下,用 nslookup IP地址,即可知道你的域名。例如:C:\>nslookup 1.2.3.4

5、VC 如何獲取本機 域名 或 工作組

1. 使用
int DimCount;
void main()

LPNETRESOURCE lpNetRC_p=NULL;
DimCount=0;
Enumerate(lpNetRC_p) ;


2.回調函數

bool Enumerate(LPNETRESOURCE lpNetRC_p)
{
int UserCount=0;
HANDLE hEnum = 0;
DWORD dwScope = RESOURCE_GLOBALNET ;
DWORD dwType = RESOURCETYPE_ANY;

DWORD dwResult = WNetOpenEnum(
dwScope, // scope of enumeration
dwType, // resource types to list
0, // enumerate all resources or RESOURCEUSAGE_CONTAINER
lpNetRC_p, // pointer to resource structure (NULL at first time)
&hEnum // handle to resource
);

if( dwResult != NO_ERROR )
{
int re=GetLastError();

return FALSE;
}

DWORD dwBuffer = 16384 ; // 16K is reasonable size

DWORD dwEntries = 0xFFFFFFFF ; // enumerate all possible entries

LPNETRESOURCE lpBuffer;

// first allocate buffer for NETRESOURCE structures ...

lpBuffer=(LPNETRESOURCE)GlobalAlloc(GPTR,dwBuffer ) ;

dwResult = WNetEnumResource(hEnum,&dwEntries,lpBuffer,&dwBuffer);

if( dwResult == NO_ERROR )
{
for( register DWORD i = 0 ; i <dwEntries;i++)
{

// memcpy(&lpBuffer[i],&lpBuffer[i],sizeof(NETRESOURCE));

if(lpNetRC_p)
{
if(lpBuffer[i].dwDisplayType==RESOURCEDISPLAYTYPE_DOMAIN)
{
//這里就是得到獲取本機 域名 或 工作組名並把它放到數組中
strcpy((char *)DimInfo[DimCount++].dimName,lpBuffer[i].lpRemoteName);

}
else
{ //這里就是得到的用戶名並把它放到數組中

strcpy((char *)DimInfo[DimCount-1].User[UserCount++].UserName,lpBuffer[i].lpRemoteName+2);
if(UserCount>=20)UserCount=0;
}
}

DWORD a=lpBuffer[i].dwDisplayType,c=lpBuffer[i].dwUsage;

//RESOURCEUSAGE_CONTAINER == (lpBuffer[i].dwUsage & RESOURCEUSAGE_CONTAINER)
//上面的條件枚舉所有的網路資源
if(a==6||a&RESOURCEDISPLAYTYPE_DOMAIN==RESOURCEDISPLAYTYPE_DOMAIN||c&RESOURCEUSAGE_CONTAINER==RESOURCEUSAGE_CONTAINER)
{
if(!Enumerate(&lpBuffer[i]))
{
return FALSE;
}
//strcpy((char *)User[UserCount++].UserName,lpBuffer[i].lpRemoteName+2);
//if(UserCount>=20)UserCount=0;
}
}
}
else if(dwResult != ERROR_NO_MORE_ITEMS)
{
return FALSE;
}

if(lpBuffer) GlobalFree((HGLOBAL) lpBuffer) ;
WNetCloseEnum(hEnum) ;

return TRUE;
}

6、C語言怎麼獲取完整的計算機名稱

用GetComputerNameEx()函數。

函數原型:

BOOL WINAPI GetComputerNameEx(
  _In_    COMPUTER_NAME_FORMAT NameType,
  _Out_   LPTSTR               lpBuffer,
  _Inout_ LPDWORD              lpnSize
);

參數NameType 名稱類型,lpBuffer 接收名字的緩沖區指針 lpnSize接收名字的緩沖區大小

返回值:成功返回非0值,失敗返回0

實例:

#define _WIN32_WINNT 0x0500

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

void _tmain(void)
{
    TCHAR buffer[256] = TEXT("");
    TCHAR szDescription[8][32] = {TEXT("NetBIOS"), 
        TEXT("DNS hostname"), 
        TEXT("DNS domain"), 
        TEXT("DNS fully-qualified"), 
        TEXT("Physical NetBIOS"), 
        TEXT("Physical DNS hostname"), 
        TEXT("Physical DNS domain"), 
        TEXT("Physical DNS fully-qualified")};
    int cnf = 0;
    DWORD dwSize = sizeof(buffer);
    
    for (cnf = 0; cnf < ComputerNameMax; cnf++)
    {
        if (!GetComputerNameEx((COMPUTER_NAME_FORMAT)cnf, buffer, &dwSize))
        {
            _tprintf(TEXT("GetComputerNameEx failed (%d) "), GetLastError());
            return;
        }
        else _tprintf(TEXT("%s: %s "), szDescription[cnf], buffer);
        dwSize = _countof(buffer);
        ZeroMemory(buffer, dwSize);
    }
}

7、PHP 如何獲取當前的域名?

<?
//獲取當前的域名:
echo $_SERVER['SERVER_NAME'];
//獲取來源網址,即點擊來到本頁的上頁網址
echo $_SERVER["HTTP_REFERER"];
$_SERVER['REQUEST_URI'];//獲取當前域名的後綴
$_SERVER['HTTP_HOST'];//獲取當前域名
dirname(__FILE__);//獲取當前文件的物理路徑
dirname(__FILE__)."/../";//獲取當前文件的上一級物理路徑
?>

(新頂級域名top域名O(∩_∩)O)

8、用C語言編寫一個得到域名的IP的程序

||輸入 域名
結果的 4小節整數 存 int d1,d2,d3,d4 變數中。

#include <stdio.h>
#include <stdlib.h>

void main()
{
char ym[80]="www.baidu.com";
FILE *fp;
char cmd[120];
char nameout[]="tmp_ping.txt"; // 臨時文件
char str3[32];
int i,len,d1,d2,d3,d4;

printf("Enter domain address\n");
scanf("%s",&ym[0]);
sprintf(cmd,"ping %s -n 1 > %s\0",ym,nameout);
system(cmd);
fp = fopen(nameout,"r");
fscanf(fp,"%*s %*s %s",&str3[0]);
fclose(fp);
len = strlen(str3);
for (i=0;i<len;i++) if ( str3[i] == '[' || str3[i] == ']'|| str3[i] == '.') str3[i] = ' ';
sscanf(str3, "%d %d %d %d",&d1,&d2,&d3,&d4);
printf("ip=%d.%d.%d.%d\n",d1,d2,d3,d4);

sprintf(cmd,"ERASE /F /Q %s\0",nameout); // 刪去臨時文件
system(cmd);
getchar();
}

程序未考慮錯誤域名和無IP返回的域名,你可以自己補充幾行處理程序。

與c獲取當前域名相關的知識