Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: API có hàm nào để lấy địa chỉ IP của máy tính của mình

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    244

    Mặc định API có hàm nào để lấy địa chỉ IP của máy tính của mình

    mình muốn lấy địa chỉ IP của mình thì làm thế nào nhỉ,trong APi có hàm lấy địa chỉ IP không vậy

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn dùng hàm gethostbyname trong Winsock2.h, truyền vào tên máy tính của bạn thì sẽ lấy được cấu trúc lưu IP. Tham khảo thêm trong msdn nha.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    04 2008
    Bài viết
    244

    Code:
    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <stdio.h>
    
    int main()
    {
    	struct hostent* diachi;
    	diachi = gethostbyname("honey");
    }
    cậu cho biêt tại sao lỗi không

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình cũng ko rành về winsock lắm. Bạn xem thử bài mẫu này nè.
    Attached Files Attached Files
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    thiếu #pragma comment (lib,"ws2_32.lib")
    Code:
    CString GetLocalAddress(void)
    {
       char*  buffer="";
       gethostname (buffer,strlen(buffer));
       HOSTENT*  lpHostEnt = gethostbyname(buffer);
       if (lpHostEnt==NULL) return "127.0.0.1";
       CString  lpAddr = (char*)inet_ntoa(*(LPIN_ADDR)*(lpHostEnt->h_addr_list));
       return lpAddr;
    }
    bác DR có 1 bài về cái này rồi
    http://forums.congdongcviet.com/show...83&postcount=1
    Đã được chỉnh sửa lần cuối bởi AlexF : 19-10-2008 lúc 09:06 AM.

  6. #6
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Mặc định API có hàm nào để lấy địa chỉ IP của máy tính của mình

    127.0.0.1

    Spam cái cho bớt xì-trét.

    diachi = gethostbyname("honey");
    "localhost" không phải "honey" . Trừ khi bạn có quả domain ấy .
    Đã được chỉnh sửa lần cuối bởi NamVoDang : 19-10-2008 lúc 09:37 AM.
    Phá toái hư không - Bạch nhật thăng thiên.

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <winsock.h>
    #include<stdlib.h>
    #pragma comment (lib,"ws2_32.lib")
    #define MAX_ADD 5
    
    int main()
    {
    	WSADATA WSAData;
    	char szHostName[128] = "sontuyen"; // Ten cua may
    	struct sockaddr_in SocketAddress; // Lay dia chi IP
    	struct hostent *pHost = 0;
    	char aszIPAddresses[MAX_ADD][16]; //Mang luu cac dia chi IP cua may
    	int iCount;
    	if(WSAStartup(MAKEWORD(1, 0), &WSAData))
    	{
    		printf ("WSAStartup error.\n");
    		system("pause");
    		return 0;
    	}
    	if(gethostname(szHostName, sizeof(szHostName)))
    	{
            printf ("gethostname error\n");
            WSACleanup();
            return 0;
    	}
    
         pHost = gethostbyname(szHostName);
        if(!pHost)
    	{
            printf ("gethostbyname error\n");
            WSACleanup();
            return 0;
    	}
    
        for(iCount = 0; ((pHost->h_addr_list[iCount]) && (iCount < MAX_ADD)); ++iCount)
    	{
            memcpy(&SocketAddress.sin_addr, pHost->h_addr_list[iCount], pHost->h_length);
            strcpy(aszIPAddresses[iCount], inet_ntoa(SocketAddress.sin_addr));
            printf ("IP Address : %s\n", aszIPAddresses[iCount]);
    	}
    
    
        WSACleanup();
        system("pause");
    }


    thêm VD lấy trên mạng,test bằng CMD IPconfig thì thấy đúng
    nhưng mà không hiểu tại sao nó khác với địa chỉ IP mình tìm được bằng AutoIT thế
    Đã được chỉnh sửa lần cuối bởi AlexF : 19-10-2008 lúc 09:54 AM.

  8. #8
    Ngày gia nhập
    04 2008
    Bài viết
    244

    OK,da duoc

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn