linux 下能查询ssh登陆的远程客户端IP,mac地址码varlog下日志好像只有当月的,是人为删除了嘛

linux 下能查询ssh登陆的远程客户端IP,mac地址码varlog下日志好像只有当月的,是人为删除了嘛,第1张

last可以看到登陆的人的IP,但是看不到mac地址的如果在同一子网里面,客户端在线的情况可以用arp命令查mac var/log中的日志是自动循环的,具体的可以在/etc/logrotateconf和/etc/logrotated中自己配置

Linux/Unix *** 作系统熟悉的人都通常是用console命令控制台来进行相应的 *** 作。 Linux/Unix *** 作系统查看网卡mac地址的方法可以通过以下命令获得:

1ifconfig -a

2ip link show

3ip address show

不同的 *** 作系统下,查看的命令稍有不同。在Windows *** 作系统下,首先进入MS-DOS(或命令 *** 作符)状态,然后输入查看MAC地址命令,即可获得适配器地址 (即MAC地址)。在 《开始菜单》《运行》中执行下面的命令

我给出前三个的答案吧

#!/bin/bash

OUTPUT=jk0701_xxx_kstxt

/sbin/ifconfig eth0 | sed -n '/inet addr:/ s/inet addr:/IPADDR=/pg' | awk -F" " '{print $1}' >$OUTPUT

/sbin/ifconfig eth0 | sed -n '/HWaddr/ s/^HWaddr /HWADDR=/pg' >> $OUTPUT

netstat -an |grep ":23" |grep "ESTABLISHED" | grep -cv "grep" >> $OUTPUT

我认为你是从 socket中取不到这部分的信息的

你得再 *** 作 arp的缓存部分才行 ARP那部分如果在特殊情况,很乱套比如有攻击或是IP地址设置有冲突啥地

---

详细的C语言怎么 *** 作ARP缓存我不太清楚 但你如果想知道就得查一下这部分怎么做了

高层的socket *** 作是得不到的

只有直连网段的计算机有MAC地址信息经过路由来的数据包取不到

import javaioBufferedReader;

import javaioIOException;

import javaioInputStreamReader;

/

与系统相关的一些常用工具方法

@author stephen

@version 100

/

public class SystemTool {

/

获取当前 *** 作系统名称

return *** 作系统名称 例如:windows xp,linux 等

/

public static String getOSName() {

return SystemgetProperty("osname")toLowerCase();

}

/

获取unix网卡的mac地址

非windows的系统默认调用本方法获取如果有特殊系统请继续扩充新的取mac地址方法

@return mac地址

/

public static String getUnixMACAddress() {

String mac = null;

BufferedReader bufferedReader = null;

Process process = null;

try {

process = RuntimegetRuntime()exec("ifconfig eth0");// linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息

bufferedReader = new BufferedReader(new InputStreamReader(process

getInputStream()));

String line = null;

int index = -1;

while ((line = bufferedReaderreadLine()) != null) {

index = linetoLowerCase()indexOf("hwaddr");// 寻找标示字符串[hwaddr]

if (index >= 0) {// 找到了

mac = linesubstring(index +"hwaddr"length()+ 1)trim();// 取出mac地址并去除2边空格

break;

}

}

} catch (IOException e) {

eprintStackTrace();

} finally {

try {

if (bufferedReader != null) {

bufferedReaderclose();

}

} catch (IOException e1) {

e1printStackTrace();

}

bufferedReader = null;

process = null;

}

return mac;

}

/

获取widnows网卡的mac地址

@return mac地址

/

public static String getWindowsMACAddress() {

String mac = null;

BufferedReader bufferedReader = null;

Process process = null;

try {

process = RuntimegetRuntime()exec("ipconfig /all");// windows下的命令,显示信息中包含有mac地址信息

bufferedReader = new BufferedReader(new InputStreamReader(process

getInputStream()));

String line = null;

int index = -1;

while ((line = bufferedReaderreadLine()) != null) {

index = linetoLowerCase()indexOf("physical address");// 寻找标示字符串[physical address]

if (index >= 0) {// 找到了

index = lineindexOf(":");// 寻找":"的位置

if (index>=0) {

mac = linesubstring(index + 1)trim();// 取出mac地址并去除2边空格

}

break;

}

}

} catch (IOException e) {

eprintStackTrace();

} finally {

try {

if (bufferedReader != null) {

bufferedReaderclose();

}

} catch (IOException e1) {

e1printStackTrace();

}

bufferedReader = null;

process = null;

}

return mac;

}

/

测试用的main方法

@param argc

运行参数

/

public static void main(String[] argc) {

String os = getOSName();

Systemoutprintln(os);

if(osstartsWith("windows")){

//本地是windows

String mac = getWindowsMACAddress();

Systemoutprintln(mac);

}else{

//本地是非windows系统 一般就是unix

String mac = getUnixMACAddress();

Systemoutprintln(mac);

}

}

}

-------------------------------------------------------------------------

本程序可以正确获得本机IP地址和网卡"eth0"的MAC地址,已经在windowsXP和ubuntu-Linux上测试过

(注意:如果有多块网卡,可能出错)

下面给出代码:

import javanet;import javautil;

public class Test { public static void main(String[] args) { Test t = new Test(); Systemoutprintln(tgetLocalIP()); Systemoutprintln(tgetMacAddr()); }

public String getMacAddr() { String MacAddr = ""; String str = ""; try { NetworkInterface NIC = NetworkInterfacegetByName("eth0"); byte[] buf = NICgetHardwareAddress(); for (int i = 0; i < buflength; i++) { str = str + byteHEX(buf[i]); } MacAddr = strtoUpperCase(); } catch (SocketException e) { eprintStackTrace(); Systemexit(-1); } return MacAddr; }

public String getLocalIP() { String ip = ""; try { Enumeration<> e1 = (Enumeration<>) NetworkInterface getNetworkInterfaces(); while (e1hasMoreElements()) { NetworkInterface ni = (NetworkInterface) e1nextElement(); if (!nigetName()equals("eth0")) { continue; } else { Enumeration<> e2 = nigetInetAddresses(); while (e2hasMoreElements()) { InetAddress ia = (InetAddress) e2nextElement(); if (ia instanceof Inet6Address) continue; ip = iagetHostAddress(); } break; } } } catch (SocketException e) { eprintStackTrace(); Systemexit(-1); } return ip; }

/ 一个将字节转化为十六进制ASSIC码的函数 / public static String byteHEX(byte ib) { char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; char[] ob = new char[2]; ob[0] = Digit[(ib >>> 4) & 0X0F]; ob[1] = Digit[ib & 0X0F]; String s = new String(ob); return s; }}

以上就是关于linux 下能查询ssh登陆的远程客户端IP,mac地址码var/log/下日志好像只有当月的,是人为删除了嘛全部的内容,包括:linux 下能查询ssh登陆的远程客户端IP,mac地址码var/log/下日志好像只有当月的,是人为删除了嘛、MAC地址查询 Linux/Unix *** 作系统mac地址怎么查、Windows或Linux下如何查看网卡MAC地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9647013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存