获取IP地址(简单实现)

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <string.h>
  4 #include <sys/socket.h>
  5 #include <sys/select.h>
  6 #include <sys/time.h>
  7 #include <unistd.h>
  8 #include <sys/ioctl.h>
  9 #include <errno.h>
 10 #include <arpa/inet.h>
 11 #include <sys/socket.h>
 12 #include <net/if.h>
 13 #include <net/if_arp.h>
 14 #include <netdb.h>
 15
 16 #define ETH_NAME  "p1p2" //网卡名字
 17
 18 int main()
 19 {
 20         int sock;
 21         struct sockaddr_in sin;
 22         struct ifreq ifr;
 23
 24         sock = socket(AF_INET, SOCK_DGRAM, 0);
 25         if(sock < 0){
 26                 perror("socket");
 27                 return -1;
 28         }
 29
 30         strcpy(ifr.ifr_name, ETH_NAME);
 31         int ret = ioctl(sock, SIOCGIFADDR, &ifr);
 32         if(ret < 0){
 33                 perror("ioctl");
 34                 return -1;
 35         }
 36
 37         memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
 38         printf("%s\n", inet_ntoa(sin.sin_addr));
 39         return 0;
 40 }
时间: 2024-09-30 15:12:35

获取IP地址(简单实现)的相关文章

DHCP获取IP地址过程中捕获的报文—三级网络总结(二)

上一篇文章主要说了一下知识点中的IP地址的考点,这一篇我打算说说DHCP获取IP地址过程中捕获的报文的这个考点,都是自己的理解,有错误欢迎指正. DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的: 1:客户机向服务器发送DHCP_DISCOVER报文,申请IP. 2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP. 3:客户机向服务器发送DHCP_REQUEST报文,请求这个

PHP获取IP地址及根据IP判断城市实现城市切换或跳转

PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: ? <? //PHP获取当前用户IP地址方法 $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $xp_UserIp = ($xp_UserIp) ? $xp_

【php】利用新浪api接口与php获取远程数据的方法,获取IP地址,并获取相应的IP归属地

本文与<[Servlet]Javaweb中,利用新浪api接口,获取IP地址,并获取相应的IP归属地>(点击打开链接)为姊妹篇,只是后端编程语言换成了php. 做出同样的效果,打开页面,得到客户端的ip,并获取利用新浪api接口获取此ip的归属地. 可以看到,在IE6也是相当正常的. 目录结构如下,非常简单,同样就两个文件,其实如果你愿意,写成一个php文件也可以,但是显示层和逻辑业务层还是不混在一起为好吧? 唯一值得注意的是,这两个文件打死也不能一个叫ipGet.php,ipGet.html

六、DHCP获取IP地址过程中捕获的报文

DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议.数据在网络上传输的时候要自顶向下逐层封装的,典型的DHCP过程是这样的:1:客户机向服务器发送DHCP_DISCOVER报文,申请IP.2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP.3:客户机向服务器发送DHCP_REQUEST报文,请求这个IP.4:服务器PING几次(一般是3次)这个IP,如果没得到响应的话,就说明这个IP现在空闲,可以分配给客户机,所以向客户机发送DHCP_ACK报文,

利用Shell命令获取IP地址

一 :获取单个网卡的IPv4地址,方法如下: 方法一:$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | cut -f2 -d ":" 方法二:$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | awk -F: '{print $2}' 方法三:$/sbin/ifconfig ethX | sed -ne 's/\(.*\)addr:\([[:digit:].]*\)\(.*

如何搭建DHCP服务器及自动获取IP地址及相关操作

DHCP服务相关理论知识 DHCP服务分为以下三点, IP地址(例:192.168.1.0) 子网掩码(例:255.255.255.0) 网关 DHCP服务的好处: 减少管理员的工作量 避免输入错误的可能 避免IP冲突 提高了IP地址的利用率 方便客户端的配置 DHCP服务的分配方式: 自动分配:分配到一个IP地址后永久使用 手动分配:由DCHP服务器管理员专门指定IP地址 动态分配:使用完之后释放该IP,供其它客户机使用 DHCP租约的过程(四个步骤):1.客户机请求IP(Discover):

获取IP地址

获取本地计算机的IP地址 关键点 WSAStartup The Windows Sockets WSAStartup function initiates use of Ws2_32.dll by a process. int WSAStartup( WORDwVersionRequested, LPWSADATAlpWSAData ); 实现过程 #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") char* 

ARM-Linux配置DHCP自动获取IP地址

备注:内核版本:2.6.30.9busybox版本:1.15.2 PC Linux和开发板Linux的工作用户:root 1. 配置内核:[*] Networking support --->Networking options ---><*> Packet socket<*> Unix domain sockets[*] TCP/IP networking[*] IP: kernel level autoconfiguration[*] IP: DHCP suppor

自动设置IP地址和自动获取IP地址bat批处理文件

自动设置IP地址.bat Echo offecho  手动设置IP地址....Netsh interface IP Set Addr "本地连接" Static 192.168.1.8 255.255.255.0 192.168.1.1 1echo  手动设置DNS地址....Netsh interface IP Set dns "本地连接" static 202.106.196.115 primaryecho  手动设置备份DNS地址....Netsh inter

CentOS 7如何设置Linux开机自动获取IP地址

centos7 minimal版默认安装好后没有获取ip地址,需要手动配置.方法如下: 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录下网卡名称(本例中为ens33). 2.输入“cd /etc/sysconfig/network-scripts/”按回车键确定,继续输入“ls”按回车键查看文件. 3.输入“vi ifcfg-ens33”并按回车键确定(网卡名称可能不同).亦可在第二步直接输入“cd /etc/sysconfig/