C语言获得电脑的IP地址的小例子_C 语言

复制代码 代码如下:

#include <stdio.h>
 #include <winsock2.h>

 #pragma comment(lib, "WS2_32.lib")

 int main()
 {
     char host_name[256]; // define host name (for example:xxx-PC)
     int WSA_return, i;
     WSADATA WSAData;
     HOSTENT *host_entry; // record host information
     WORD  wVersionRequested;

 
     wVersionRequested = MAKEWORD(2, 0);
     WSA_return = WSAStartup(wVersionRequested, &WSAData); // initialize Winsock service and then call other socket or dll file

     if (WSA_return == 0) // initialize success
     {
         gethostname(host_name, sizeof(host_name));
         host_entry = gethostbyname(host_name);

         for(i = 0; host_entry != NULL && host_entry->h_addr_list[i] != NULL; ++i)
         {
             // define pszAddr to record IP
             // inet_ntoa: Convert an IP into an Internet standard dotted format string
             const char *pszAddr = inet_ntoa (*(struct in_addr *)host_entry->h_addr_list[i]);
             printf("[IP]\t%s\n[Name]\t%s\n\n", pszAddr, host_name);
         }
     }
     else
     {
         printf("ERROR\n");
     }
     /* WSACleanup() finish use Winsock 2 DLL (Ws2_32.dll). Head:Winsock2.h. reference #pragma comment(lib, "ws2_32.lib") */
     WSACleanup();
     return 0;
 }

时间: 2024-10-03 17:59:33

C语言获得电脑的IP地址的小例子_C 语言的相关文章

C/C++语言中结构体的内存分配小例子_C 语言

当未用 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度对齐:当使用了 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度和 #pragma 指令指定的位数中的较小值对齐. #pragma 指令格式如下所示:#pragma pack(4)     // 或者 #pragma pack(push, 4) 举例如下:(机器字长为 32 位)    struct    {        char a;    }test;    printf("%d

c语言读取obj文件转换数据的小例子_C 语言

复制代码 代码如下: // hello.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include "stdio.h" int _tmain(int argc, _TCHAR* argv[]){    FILE *file1,*file2;    file1=fopen("047facesmall.obj","r&quo

C语言数组指针的小例子_C 语言

1.功能:输入6个学生的5门课程成绩,计算出每个学生的平均分和每门课程的平均分.2.C语言实现代码:(其实就是用二维数组来实现的,二维数组的引用传递使用数组指针来完成) 复制代码 代码如下: #include <stdio.h>#define STUDENT 5#define SCORE 6void input_array(float (*score)[STUDENT]);void avg_score(float (*score)[STUDENT]);void avg_course(float

C语言判断回文数的小例子_C 语言

复制代码 代码如下: #include<stdio.h>#include<stdlib.h> int is_palindrome(char* para_str , int len); int main(int argc , char* argv[]){   int n = atol(argv[2]);     if (is_palindrome(argv[1],n))       printf("this string is palindrome !\n"); 

异步http listener 完全并发处理惩罚http恳求的小例子_C 语言

复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using DevSDK.Net.Sockets; using System.IO;  namespace ConsoleApplication1 {     class Program     {         s

short与int转换的小例子_C 语言

复制代码 代码如下: #include <stdio.h> int main(){    short a=-1;    unsigned int b=a;    int c=a;     printf("%x\n", b);    printf("%d\n", c);     a=1;    b=a;    c=a;     printf("%x\n", b);    printf("%d\n", c);    

c语言在控制台判定鼠标左键的小例子_C 语言

复制代码 代码如下: // temp1.cpp : Defines the entry point for the console application. //  //#include <stdafx.h> #include <windows.h> #include <conio.h> #include <stdlib.h> #include<stdio.h> int main(int argc, char* argv[]) {  SetCon

C 字符串数组排序的小例子_C 语言

复制代码 代码如下: #include<stdio.h>#include<string.h>#include <malloc.h>void q_sortB(char str[20][20], int n);void qs(char str[20][20],int n); void main() {    int i, n;    char str[20][20] = { { "Adam" }, { "Bob" }, { "

电脑网络ip地址冲突怎么办

  电脑网络ip地址冲突的解决方法一 设置成为由DHCP自动获取. 打开"控制面板",在"控制面板"里面打开"网络和Internet". 点击"网络和共享中心". 点击"本地连接". 点击"详细信息". 选择"Internet协议版本4(TCP/IPv4)"之后点击"属性". 在弹出的Internet 协议属性窗口里,点击"自动获得IP地