Linux基础——查看IP及port的简单实现

需要注意,不同的机器,有的可能为大端字节序,有的可能为小端字节序。

小端就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。

大端就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。

实现代码如下:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <sys/socket.h>
 5 #include <netinet/in.h>
 6 #include <arpa/inet.h>
 7 #define IP "180.97.33.107"
 8 int my_aton(char * ip)
 9 {
10     int arr[4];
11     int i;
12     sscanf(ip,"%d.%d.%d.%d",arr,arr+1,arr+2,arr+3);
13     i=(arr[0]<<24)|(arr[1]<<16)|(arr[2]<<8)|arr[3];
14     return i;
15 }
16 char* my_ntoa(int i)
17 {
18     static char buf[1024];
19     memset(buf,0,1024);
20     sprintf(buf,"%d.%d.%d.%d",(i>>24)&0xff,(i>>16)&0xff,(i>>8)&0xff,i&0xff);
21     return buf;
22 }
23 int main(int argc,char *argv[])
24 {
25     int i;
26     i=my_aton(IP);
27     struct in_addr my_add;
28     inet_aton(IP,&my_add);
29     printf("%x\n",i);
30     printf("%x\n",my_add.s_addr);
31     char *buf;
32     buf=my_ntoa(i);
33     printf("%s\n",buf);
34     printf("%s\n",inet_ntoa(my_add));
35 }

获得本地的IP方法如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(int argc,char *argv[])
{
    struct hostent *p;
    p=gethostbyname(argv[1]);
    char **pp;
    printf("name : %s\n",p->h_name);
    pp=p->h_aliases;
    for(;*pp!=NULL;*pp++)
        printf("alia : %s\n",*pp);
    printf("type : %d\n",p->h_addrtype);
    printf("ip length : %d\n",p->h_length);
    pp=p->h_addr_list;
    for(;*pp != NULL;*pp++)
        printf("ip : %s\n",inet_ntoa(*(struct in_addr*)*pp));
    return 0;
}

时间: 2024-10-10 19:20:06

Linux基础——查看IP及port的简单实现的相关文章

Linux主机查看IP地址

[[email protected] ~]#ifconfig ethx |awk -F '[ :]+' 'NR==2 {print $4}' Linux主机查看IP地址

Linux下查看IP的命令:ifconfig -a

按照指南实践,在NFS挂载测试和tftp服务器架设时,均需用到本机的IP地址,怎么查看呢? 很简单,键入命令:ifconfig -a 这个命令具体是怎么定义的呢?有时间再查阅,先跑遍指南.

Linux基础命令---IP路由操作

ip ip指令可以显示或操作路由.网路设备,设置路由策略和通道. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.   1.语法      ip [选项]  OBJECT  COMMAND [help] OBJECT对象可以是:link,网络设备:addr,设备的协议地址:route,路由表:rule,策略:neigh,arp缓存:tunnel,ip通道:maddr,多播地址:mroute,多播路由 COMMAND是操作命令,不同的

Linux &amp; Windows 查看 ip 地址

Windows 查看本机 IP 打开 cmd,输入 ipconfig,回车,找到IPv4地址 或者通过以下方式查看 点击Win10系统的右下角的宽带连接图标,如下图所示.  点击弹出菜单的“查看连接设置”,如下图所示.  点击后会打开电脑设置下的网络设置,点击右侧的以太网,如下图所示.  点击后可以查看本机电脑的IP地址等信息.如下图所示. Linux 查看本机 IP 地址 与 Windows 有点不同,命令为 ifconfig 我使用的是虚拟机,所以 inet addr : 192.168.1

linux apache 查看IP连接数

查看Apache的连接数和当前的连接数以及IP访问次数,以下脚本可实现: #!/bin/bash#writen by zhuxiaowei#date:2015.10.19#about "watch clients IP "###########################################con_num=`netstat -ant | grep $ip:80 | wc -l`    # connections numbers con_now=`netstat -ant

linux基础-TCP/IP协议篇

1.网络层次模型概念介绍:TCP/IP协议就是用于简化OSI层次,以及相关的标准.传输控制协议(tcp/ip)族是相关国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信 是由一组不同功能的协议组合在一起构成的协议族,利用一组协议完成OSI所实现的功能,不单单是指TCP.IP这两个协议. 2.网络层析模型作用说明: OSI七层模型简化四层DoD模型,应用层.表示层.会话层统称为应用层,传输层称为主机到主机层,网络层即为因特网层,数据链路层和网络层统称为网络接入层. 3.网络

Linux中查看IP地址的9种方法

[[email protected] ~]# ifconfig eth0      Link encap:Ethernet  HWaddr DA:DE:BE:41:89:18 inet addr:192.168.150.53  Bcast:192.168.150.255  Mask:255.255.255.0 inet6 addr: fe80::d8de:beff:fe41:8918/64 Scope:Link UP BROADCAST RUNNING MULTICAST  MTU:1500  

linux下查看监听port相应的进程

使用netstat查看进程PID [root@test ~]# netstat -anp|grep 5001 tcp 0 0 :::5001 :::* LISTEN 12886/java 之后各位看官,就能够用kill -9 PID杀进程了 原文地址:https://www.cnblogs.com/llguanli/p/8469917.html

linux服务器查看网卡连接的交换机IP和PORT

cdpr命令: 安装:yum -y install cdpr   (安装epel库) [21:53:07 [email protected] ~]# cdpr -h cdpr - Cisco Discovery Protocol Reporter Version 2.4 Copyright (c) 2002-2010 - MonkeyMental.com d: Specify device to use (eth0, hme0, etc.) h: Print this usage t: time