android局域网mac
‘壹’ android+mac地址和ip地址的区别
mac地址指的是手机硬件上网卡的硬件码 他是固定的并且是唯一的
ip地址是网络分配给你的虚拟地址 是一个你可以上网的通行证 就和你的身份证一样
‘贰’ 如何安卓端实现遍历局域网的IP 、MAC以及端口号
MAC 是 电脑网卡 , 300兆 网卡 MAC只不过是网卡显示的一个编号 也是ALAN
‘叁’ android mac 地址 是唯一的吗
下面是引用,原文链接在最后!
“
问题:mac地址真的是全球是唯一的吗
答:不是
mac地址在网络中的描述如下:
MAC(Media Access Control,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:
前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。
MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。
MAC地址与IP地址区别
IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:
对于网络上的某一设备,如一台计算机或一台路由器,其IP地址是基于网络拓扑设计出的,同一台设备或计算机上,改动IP地址是很容易的(但必须唯一),而MAC则是生产厂商烧录好的,一般不能改动。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址不可由本地连接内的配置进行修改。如果一个计算机的网卡坏了,在更换网卡之后,该计算机的MAC地址就变了。
长度不同。IP地址为32位,MAC地址为48位。
分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。
寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
注:看完网络的解释,似乎mac地址真的是全球是唯一。但是mac地址一般存放在EPROM/EEPROM里,大家都知道,这种ROM是可修改的,这点就证明存在这种可擦除ROM里的mac可能会被修改。
新问题:用户自己修改mac是很容易就造成mac地址冲突的。当mac地址冲突了怎么办?
mac地址冲突场景:同一个局域网里如果有两个phy芯片的mac地址一样,系统会报出mac地址冲突的异常,此时两个phy都不能正常传输数据
解决方法就是把冲突的地址改成不一样就行。
注:不同局域网中的mac地址即使一样也不会造成冲突,毕竟网关不一样了。
”
网页链接
‘肆’ 如何安卓端实现遍历局域网的ip mac以及端口号
局域网共享使用的端口,一般有以下几个
1.135端口,这个是rpc服务的端口,共享的时候有用的
2.445端口,这是com端口,也和netbios有关
3.139端口 ,这个netbios使用的,共享里能查到机器名全靠这个了。
一般这几个服务端口开放也基本上对应的服务没有问题,共享就可以了
‘伍’ android设备 如何通过mac地址知道ip地址
android 中有 获取IP 和 MAC的方法例如获取Ip
public String GetHostIp() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> ipAddr = intf.getInetAddresses(); ipAddr
.hasMoreElements();) {
InetAddress inetAddress = ipAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException ex) {
} catch (Exception e) {
}
return null;
}
MAC 就不列举了自行网络,但是你说的问题 让两台设备TCP通讯,如果是在局域网内,也就是用wifi,你获取ip 然后一个客户端一个服务器是可以连接成功的。但是如果用外网的话,就不是这么简单了。比如 我用android 作为客户端PC作为手机 如果手机用外网访问服务器,这就相当于外网访问内网服务器,需要在服务器进行配置 一、在路由器的转发规则设置映射 二、(这个有的情况不需要,例如,你的pc网络是铁通你的手机是移动卡,就不用第二部,如果你的手机是联通卡就需要这步)申请一个固定Ip 给客户打电话
‘陆’ 我的android手机的无线局域网MAC地址是干嘛用的
设置无线网关用的
‘柒’ android如何获wifi路由器MAC地址
[mw_shl_code=java,true]WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);List wifiList = wm.getScanResults();for (int i = 0; i < wifiList.size(); i++) {ScanResult result = wifiList.get(i);Log.d("dada", "bssid=" + result.BSSID);}[/mw_shl_code]
‘捌’ 安卓手机MAC地址老是变化怎么办
这是因为手机查到的Mac地址其实是特指的所登录的Wi-Fi无线网卡的MAC地址,每当换了网络环境之后,Mac地址就会改变,这与电脑的Mac地址并不是同一回事。
MAC地址一般长度为48位,通常表示为12个16进制数,每2个16进制数之间会用冒号隔开,比如03:03:30:3A:3B:3C就是一个MAC地址,其中前6位16进制数03:03:30代表网络硬件制造商的编号,而后3位16进制数3A:3B:3C代表该制造商所制造的某个网络产品(如网卡)的系列号。
每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三个字节以及不同的后三个字节,这样就可保证世界上每个以太网设备都具有唯一的MAC地址。
为了管理方便,就需要使用MAC地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。MAC地址同IP地址的区别就在于,虽然他们在局域网中是一一对应的关系,不过IP地址是跟据现在的IPv4(还有IPv6)标准指定的,不受硬件限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。
‘玖’ JAVA如何获取局域网内所有安卓设备的ip地址,MAC以及序列号
1.得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)
2.根据IP类型,一次遍历局域网内IP地址
JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可
代码如下::
package bean;
import java.io.*;
import java.util.*;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30个线程
while(threadCount>30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(".");
String ss = hostAddress.substring(0,k+1);
for(int i=1;i <=255;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount>0)
Thread.sleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals("true"))
System.out.println(key+"-->"+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i <7; i++)
input.readLine();
String line= input.readLine();
if (line.length() <17 || line.substring(8,17).equals("timed out"))
ping.put(ip,"false");
else
ping.put(ip,"true");
//线程结束
threadCount -= 1;
}catch (IOException e){}
}
}
}
‘拾’ 安卓手机mac地址为什么总变 怎么让他恒定一个
手机的mac地址和电脑的不一样。他采用的是linux系统的二进制算法。当你连入wifi后。会自动匹配最合适的地址,而且这个地址是虚拟测,实际的地址是不变的。只要不影响上网就没事的。比如这样的mac地址连入被网络尖兵看守的电信网络后,却不会被发现。而带电脑的就不一样了,没有做任何的措施的话,直接被网络尖兵看守的电信网络后,很快就会被发现,而被警告。
一、什么是MAC地址?
MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC位址。因此一个主机会有一个IP地址,而每个网络位置会有一个专属于它的MAC位址。
二、Android系统MAC地址在哪?
首先就从Android系统说起吧,点击手机的“设置”——“WLAN”——“高级设置”——最后“MAC地址”栏的地址即为MAC地址。
具体操作如下图: