专用三星流量监控清零不想用了能手动清零吗

什么是TCP/IP协议?应如何设置IP地址?
我的图书馆
什么是TCP/IP协议?应如何设置IP地址?
什么是TCP/IP协议?应如何设置IP地址?
TCP/IP协议介绍
TCP/IP的通讯协议
这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原
因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,
TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message
Protocol)协议和其他一些协议的协议组。
TCP/IP整体构架概述
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型
,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层
、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所
提供的网络来完成自己的需求。这4层分别为:
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)
传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP
给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),
如网际协议(IP)。
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
TCP/IP中的协议
以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层
;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认
数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证
基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来
指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最
后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来
进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时
实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便
将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些
情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP
主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服
务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),
也就是说,与UDP相关的服务面临着更大的危险。
ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的
‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路
径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
5. TCP和UDP的端口结构
TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。
用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客
户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认
源IP地址 发送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用
一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或
服务的连接时,需要这些地址和目的地址进行通讯。
XP打开网络邻居属性-本地连接属性-选择TCP/IP协议属性
手动设置: IP地址:192.168.*.*(*是0-255之间一个数) 子网掩码:255.255.255.0 网关:共享上网主机的地址或者路由器地址,宽带用户留空
手动指定DNS: 打电话到当地电信的服务电话,询问本地的DNS地址
| 浏览(2633) | &(2)
相关文章:
         
         
         
         
         
发表评论:
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&获取远程主机MAC地址的新思路及实现
获取远程主机MAC地址的新思路及实现
摘要:本文分析了利用SendARP方法(基于ARP协议)来获取远程主机MAC地址的缺陷,提出了一种新思路――研究并利用NetBIOS Name Service来快速获取远程主机MAC地址的方法,并给出了其在Borland Delphi6中的程序。关键词:MAC地址,远程主机,NetBIOS,TNMUDP1引 言众所周知,在所有网卡信息中,最重要的莫过于网卡的MAC地址,即网卡的物理地址。MAC地址固化在网卡的ROM中,一般不易改动。因此在网络中需要监控一台计算机的最好的方法就是获取它的MAC地址。那么,如何获取远程主机(Remote Host,即和本地主机不在同一个子网中的主机)的MAC地址呢?一般的资料认为:采用IpHelperAPI的SendARP方法,但根据笔者的实验观察,此种方法行不通――它只能获取“本网段”内主机的MAC地址,如果源主机与目的主机不在同一个网段内,则该方法就只能获取“网关”的MAC地址,而无法获取目的主机的MAC地址。这是由ARP协议的工作原理决定的。2获取远程主机MAC地址的原理及分析下面是利用NetBIOS协议来获取“远程主机(Remote host)”MAC地址的思路和实现方法。大家都知道,NetBIOS(网络基本输入/输出系统)是一套用于网络通讯的调用接口,包含了NetBIOS Name和MAC地址等信息。NetBIOS并没有对下层使用的协议进行限制,因此它除了可以在NetBEUI支持下运行之外,还可以在其他协议支持下运行。其中NetBIOS Over IP由于使用TCP/IP协议,使远程主机之间的NetBIOS通信得以较好实现。在NetBIOS Over IP通信过程中,可假定源主机A向远程目的主机B请求其“NetBIOS Names”信息。则两者之间的通信过程如下所示:首先,主机A向主机B发送“UDP-NetBIOS-NS”询问包,即向主机B的137端口,发Query包来询问主机B的NetBIOS Names信息。其次,主机B接收到“UDP-NetBIOS-NS”询问包,假设主机B正确安装了NetBIOS服务,而且137端口开放,则主机B会向主机A发送一个“UDP-NetBIOS-NS”应答包,即发Answer包给主机A。分析主机B反馈给主机A的Answer包可知:其中不仅包含了主机B的NetBIOS Name信息,且包含了主机B的MAC地址。“UDP-NetBIOS-NS”应答包的结构及主要字段如下:表1 “UDP-NetBIOS-NS”应答包的结构及主要字段一览表序号 字段名 长度1 Transaction ID 两字节(16位)2 Flags 两字节(16位)3 Questions 两字节(16位)4 AnswerRRs 两字节(16位)5 AuthorityRRs 两字节(16位)6 AdditionalRRs 两字节(16位)7 Name
下页更精彩:1
本文已影响人
获取远程主机MAC地址的新思路及实现相关推荐
[获取远程主机MAC地址的新思路及实现]网友评论
<div class="ds-thread" data-thread-key="236197" data-title="获取远程主机MAC地址的新思路及实现" data-image="">2786人阅读
软件(82)
如何获得本机/远程主机的MAC地址?DOS命令下的三种获取远程主机MAC地址的方法
一:问题:如何获得本机/远程主机的MAC地址,且不受操作系统类型的限制,也不受本机和远程主机是否在同一个LAN中的限制。 二:解决的方法 注:就我所看到的有关&如何获得本机/远程主机的MAC地址&的方法总结如下。 这些方法及程序参考了本站及其他站点,以及用google搜索到的一些牛人的解法和源代码,我在此对他们深表感谢,在此就不说他们的大名了。 我所总结的方法和以及我写的代码一定存在许多不足,敬请各位同志斧正!!! 欢迎讨论!!!如果您认为值得转载的话,欢迎转载。 (一)获得本机的MAC地址 1:在WINDOWS 2000/XP下,使用ipconfig /all ,或者route print ,或者nbtstat 本机的IP地址; 2:在Linux/UNIX/类UNIX下,使用ifconfig; 3:自己写程序/参考牛人的程序实现,其原理可以参考arp协议; (二)获得同一个LAN中主机的MAC地址 1:先ping目标主机,然后察看arp表,该方法不受操作系统类型的限制; 2:在WINDOWS 2000/XP下,用nbtstat + 目标主机的IP地址; 3:在Linux下,用nbtstat + 目标主机的IP地址。(Linux系统本身没有提供, 但是在本站的&网络编程&版有一段用C语言写的原码,实现了WINDOWS下的nbtstat命令的部分功能。那段原码里面多了一个&}&符号); 注:2,3两种方法都只适合于目标主机是WINDOWS系统,且目标主机的137(135-139)端口是开放的。 4:自己写程序/参考牛人的程序实现,其原理可以参考arp协议; (三)获得远程主机的MAC地址 1:在WINDOWS 2000/XP下,用nbtstat + 目标主机的IP地址; 2:在Linux下,用nbtstat + 目标主机的IP地址。(Linux系统本身没有提供, 但是在本站的&网络编程&版有一段用C语言写的原码,实现WINDOWS下的nbtstat命令的部分功能。那段原码里面多了一个&}&符号); 注:1,2两种方法都只适合于目标主机是WINDOWS系统,且目标主机的137(135-139)端口是开放的。 3:自己写程序/参考牛人的程序实现 三:我自己现在不是牛人,没有对问题给出一个圆满的解决方案。下面是我参考各位牛人的一些思想和源代码,在Java中通过系统调用实现的一段程序。该程序我已经在WINDOWS XP和RedHat Linux 9.0下测试通过。(要求系统只配了一个以太网卡,如有两块网卡,只能检测出其中的一块网卡的MAC地址,且可能造成显示的MAC/IP地址对与实际的MAC/IP地址对不符。)
import java.io.*; import java.lang.*; import java.lang.ref.*; import java.lang.reflect.*; import java.net.*; import java.util.*; public class GetLocalAddrConfig { public static void main(String[] args) { //Get IP of local host String IP = ""; IP = getIP(); System.out.println(IP); //Get OS type String OSName = getOSName(); //Get IPconfig command String IPconfig = getIPconfig(OSName); //Get the configuration of your system String sysconfig = getSysConfig(IPconfig); //Get MAC address of eth0 String MAC = getMAC(sysconfig,OSName); System.out.println("MAC : "+MAC); } //Get OS type public static String getOSName(){ Properties properties = properties = System.getProperties(); String OSName = properties.getProperty("os.name"); return OSN } //Get IPconfig command public static String getIPconfig(String OSName){ String IPconfig = ""; //RedHat Linux 9.0 if (pareToIgnoreCase("Linux")==0){ IPconfig="ifconfig"; //WINDOWS XP } else if ( pareToIgnoreCase("Windows XP")==0 ){ IPconfig="ipconfig /all"; //other OS that I don't know } else { System.out.println("I don't know your os type !"); System.exit(1); } return IP } //Get the configuration of your system public static String getSysConfig(String ipconfig){ String sysconfig = ""; try { Process p = Runtime.getRuntime().exec(ipconfig); InputStreamReader reader = new InputStreamReader(p.getInputStream()); char[] localConfig=new char[2000]; reader.read(localConfig); for (int i=0;i&2000 ;i++ ){ sysconfig+=localConfig[i]; } } catch (java.io.IOException ex) { System.err.println("Problems invoking "+ipconfig); System.exit(1); }
} //Get MAC address of eth0 //This function can only be used by getMAC private static String getmac(String sysconfig,String macstr){ String mac = ""; int index=sysconfig.indexOf(macstr); index+=macstr.length(); for (; index&=sysconfig.length() ;index++ ){ if (sysconfig.charAt(index)&='0') if (sysconfig.charAt(index)&='9')
if (sysconfig.charAt(index)&='a') if (sysconfig.charAt(index)&='f')
if (sysconfig.charAt(index)&='A') if (sysconfig.charAt(index)&='F')
} for (int i=0;i&17 ;i++ ) { mac+=sysconfig.charAt(index); index++; }
} //Get MAC address of eth0 public static String getMAC(String sysconfig,String OSName){ String MAC = ""; //RedHAT Linux 9.0 if (pareToIgnoreCase("Linux")==0){ MAC=getmac(sysconfig,"Ethernet HWaddr"); } //WINDOWS XP else if ( pareToIgnoreCase("Windows XP")==0 ){ MAC = getmac(sysconfig,"Physical Address"); } else { System.out.println("I don't know your os type !"); System.exit(1); } return MAC; } //Get IP of eth0 public static String getIP(){ String IP = ""; try { Enumeration nifs= NetworkInterface.getNetworkInterfaces(); while (nifs.hasMoreElements()){ NetworkInterface netIf= (NetworkInterface)nifs.nextElement(); String nifName= netIf.getName(); if (pareToIgnoreCase("lo")==0){
} System.out.print(nifName + " : "); for (Enumeration nifIp= netIf.getInetAddresses(); nifIp.hasMoreEle ments();) { InetAddress address= (InetAddress)nifIp.nextElement(); IP= address.getHostAddress(); //System.out.println(IP); } } } catch (Exception e) { e.printStackTrace(); } return IP; } }
使用Nbtstat批量获取MAC地址日 星期一 16:35在一般企业中,为了便于对局域网内的计算机进行有效管理,我们一般使用静态IP地址分配给每一台计算机,由于IP地址通常可能自选更改,单靠IP地址来检查网络并不可靠,不过我们知道网卡的硬件(MAC)地址是唯一的,所以我们可以统计IP地址与MAC地址的对应关系,以便在出现问题时提供依据。本文给出两种方法。 一、使用工具 建议使用&MAC扫描器&(下载地址),该软件可以远程批量获取MAC地址。它运行于局域网或Internet内的一台机器上,即可监控整个网络的连接情况,实时检测各用户的IP、MAC、主机名、用户名等并记录以供查询。并且可以跨网段扫描,能和数据库中的IP和MAC地址进行比较,只要发现某用户修改了IP或MAC地址,即可报警。   此外,你也可以使用Windows优化大师批量获取MAC,方法是:点击该软件的&系统性能优化&&&系统安全优化&&&附加工具&&&集群Ping&,即可成批扫出MAC地址,并保存到文件中。 二、使用Windows命令   我们推荐使用Nbtstat命令来获取局域网中电脑的MAC地址以及其他信息。虽然我们也可以使用ping和arp命令来实现,但通过Nbtstat命令来实现具有更好的效果,比如在客户机有防火墙的情况下(现在通常客户机上都安装有防火墙软件),一般ping命令会失效,不能作为检测机器是否IP地址是否存在的条件,所以统计信息会很不全面,但用Nbtstat命令可以通过。   另外通过arp命令得到的远程PC上信息会有限,通常只能返回IP地址和物理地址的对应作息,而使用Nbtstat除了可以实现这些功能,同时也能返回远程计算机名称、组织名等一些重要的参考信息,为网络故障的分析和解决提供更多帮助。 制作批处理文件批量获取信息   Nbtstat命令一般是针对一台电脑进行信息的获取。为了更加快捷的获取信息,我们可以通过制作批处理文件的方式实现物理地址批量猎取的目的。   要制作的批处理文件有两个:(1)allMAC.bat和(2)nbtpc.bat。我们可以打开记事本输入以下命令(命令解析括号中的内容不要输入,如果一定要输入就在括号前面加注析命令rem). (1) allMAC.bat for /l %%I in (1.1.254) do nbtpc 192.168.1.%%I (命令解析:for命令是循环执行do nbtpc 192.168.1.%%I,in后面的(1.1.254)括号内三个参数分别表示变量I循环的初始数值,每次循环的增加量、循环的终结数值。比如括号中有(1.2.5)三个参数,就表示循环是从192.168.1.1开始,到192.168.1.5结束,由于增量为2,循环的第二个IP地址为192.168.1.3,第三个IP地址为192.168.1.5以此类推。)  如果括号中第二个参数为1,就表示循环是逐个进行,参数/I是表示括号中的参数是按(循环的初始数值、循环的增加量、循环的终结数值)形式进行循环的,如果没有这个参数的话,循环方式就只能按数字个数来定,比如上边的(1.2.5),循环只有三次,do nbtpc后面的IP地址参数分别为192.168.1.1;192.168.1.2和192.168.1.5,%%I是用于存放每次循环的数值的变量。 (2)nbtpc.bat @echo off(命令解析:表示不在屏幕回显命令执行过程。) call nbtstat &a %1 |find &MAC Address&&nul(命令解析:这时涉及有两个主要命令Nbtstat命令使用。Find &MAC Address&,表示是否在Nbtstat 命令执行后有MAC Address信息,通常情况下,如果没有找到主机是没有这个英文反馈信息出现在屏幕上的,而只有Host not found.信息出现,>nul表示find命令发现&MAC Address&。) if %ERRORLEVEL%==0 goto nbt (命令解析:当执行上一条命令而满足条件find &MAC Address&&nul,表示没有出现错误的情况下,程序转向到本批处理文件中标记符为:nbt的过程去执行。) goto end (命令解析:程序转到结束标记符end的地方,表示程序终结。) :nbt (命令解析:nbt程序处理过程的标记符。) @ echo Currednt ipaddress is: %1 &&allpc.txt(命令解析:当发现相应IP地址的主机存在时,将&当前IP地址&写入allpc.txt文本文件中,如果原来有这个文本的话,就在原来的记录后面追加,如果原来没有这个文件就新建立一个。) ntstat &a %1 &&allpc.txt(命令解析:接前着上面写入的信息,将命令Nbtstat执行的回馈信息写入allpc.txt文件中。) :end (命令解析:程序结束位置标记符号。) 注意两个文件要在同一个目录中,然后运行allMAC.BAT文件,程序运行完毕自动生成名称为allpc.txt的报告文件。
===========================================================================================================
DOS命令下的三种获取远程主机MAC地址的方法
第一种方法:使用Arp命令,这个命令很多的网络或者是系统管理员应该不会对它陌生了,它的使用方法非常的简单。 要想使用Arp命令获取远程主机的MAC地址,管理员只要用5 Q% Q6 G/ L&&m&&[7 jPing命令ping一下远程主机的IP地址,然后用arp -a 或者是 arp -g 就得到一个IP地址和Mac地址的对应表,这样,系统管理员就获得了需要的远程主机的MAC地址。0 F8 B1 m. C+ s5 b/ I0 v第二种方法:使用GetMac命令,这个命令对于一些网络管理员来说也许有些陌生,很多! {' x( L9 a1 P* g( F的时候我们只需要使用Arp -a 或者是 Arp -g就可以获得远程主机的IP地址了,但是aGetMac命令在有些时候还是需要用到的。使用这个命令需要知道远程主机的用户名,密9 j$ J+ i" |3 R# g0 {! m3 G码及IP地址。用法&&GetMac /S 要连接的远程系统IP /U&&用户名&&/P 密码&&9 Y. O6 y! X) f9 y&w# t( S! c第三种方法:用nbtstat命令,也可以获取需要的远程主机的IP地址。这个命令使用起来/ h/ m( r4 @. n' W1 i3 F/ h0 T1 E和Arp命令一样的方便,它和arp命令之间的区别在于,nbtstat命令不用事先与所需MAC地址的主机进行通信而可以直接使用。使用方法为 nbtstat -A 远程主机IP地址
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:164928次
积分:1831
积分:1831
排名:第17767名
原创:25篇
转载:72篇
(1)(1)(7)(15)(9)(16)(9)(9)(10)(1)(1)(12)(1)(1)(1)(2)(1)

我要回帖

更多关于 微信充值流量会清零吗 的文章

 

随机推荐