孙力 發表於 2019-9-11 16:03:00

socket 编程获取本机及域名ip地址

<h1 id="socket-编程获取本机及域名ip地址">socket 编程获取本机及域名ip地址</h1>
<pre><code class="language-c">#include &lt;stdio.h&gt;
#include &lt;winsock2.h&gt;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int ip(char name[],int a)
{
        int iResult;
        WSADATA wsaData;
        WORD v=MAKEWORD(2,2);
        iResult=WSAStartup(v,&amp;wsaData);
        if(iResult!=0)
        {
                printf("WSAStartup failed: %d\n",iResult);
                return -1;
        }   //套接字初始化
       
        int i=0;
        if(a==1)
                {
                        printf("本机ip\n");
                        gethostname(name,sizeof(name));
                }
//        printf("主机名:%s\n\n",name);//获取主机名
       
        struct hostent *host=gethostbyname(name);
        for(i=0;host!=NULL&amp;&amp;host-&gt;h_addr_list!=NULL;i++)
        {
                char *p=inet_ntoa(*(struct in_addr *)host-&gt;h_addr_list);
                printf("h_name:%s\n",host-&gt;h_name);
                printf("IP Address #[%d]:%s\n",i+1,p);//获取全部ip
               
        }
        iResult=WSACleanup();
        if(iResult!=0)
        {
                printf("WSACleanup failed: %d\n",iResult);
                return -1;
        }   //套接字释放
}

int main()
{
        char namehost;
        int i;
        ip("",1);
        printf("\n请输入域名:");
        scanf("%s",namehost);
                ip(namehost,2);
        return 0;
}
/*int main(int argc, char *argv[]) {
        return 0;
}*/
</code></pre><br><br>
来源:https://www.cnblogs.com/juicef/p/11506820.html
頁: [1]
查看完整版本: socket 编程获取本机及域名ip地址