Skip to content

Instantly share code, notes, and snippets.

@codewithpassion
Created December 29, 2016 12:09
Show Gist options
  • Save codewithpassion/2a741a170d96d54912dc11c10b58f98f to your computer and use it in GitHub Desktop.
Save codewithpassion/2a741a170d96d54912dc11c10b58f98f to your computer and use it in GitHub Desktop.
.class public Lgetmac;
.super Ljava/lang/Object;
.source "getmac.java"
# direct methods
.method public constructor <init>()V
.locals 0
.prologue
.line 9
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getMacAddr()Ljava/lang/String;
.locals 11
.prologue
const/4 v5, 0x0
.line 13
:try_start_0
invoke-static {}, Ljava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
move-result-object v6
invoke-static {v6}, Ljava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
move-result-object v0
.line 15
.local v0, "all":Ljava/util/List;, "Ljava/util/List<Ljava/net/NetworkInterface;>;"
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v6
:cond_0
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v7
if-eqz v7, :cond_4
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/net/NetworkInterface;
.line 16
.local v3, "nif":Ljava/net/NetworkInterface;
invoke-virtual {v3}, Ljava/net/NetworkInterface;->getName()Ljava/lang/String;
move-result-object v7
const-string v8, "wlan0"
invoke-virtual {v7, v8}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v7
if-eqz v7, :cond_0
.line 18
invoke-virtual {v3}, Ljava/net/NetworkInterface;->getHardwareAddress()[B
move-result-object v2
.line 19
.local v2, "macBytes":[B
if-nez v2, :cond_1
.line 20
const-string v5, ""
.line 35
.end local v2 # "macBytes":[B
.end local v3 # "nif":Ljava/net/NetworkInterface;
:goto_0
#invoke-static {v5}, Liglogger;->d(Ljava/lang/String;)I
return-object v5
.line 23
.restart local v2 # "macBytes":[B
.restart local v3 # "nif":Ljava/net/NetworkInterface;
:cond_1
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
.line 24
.local v4, "res1":Ljava/lang/StringBuilder;
array-length v6, v2
:goto_1
if-ge v5, v6, :cond_2
aget-byte v1, v2, v5
.line 25
.local v1, "b":B
const-string v7, "%02X:"
const/4 v8, 0x1
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v10
aput-object v10, v8, v9
invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v7
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 24
add-int/lit8 v5, v5, 0x1
goto :goto_1
.line 28
.end local v1 # "b":B
:cond_2
invoke-virtual {v4}, Ljava/lang/StringBuilder;->length()I
move-result v5
if-lez v5, :cond_3
.line 29
invoke-virtual {v4}, Ljava/lang/StringBuilder;->length()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
.line 31
:cond_3
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
move-result-object v5
goto :goto_0
.line 33
.end local v2 # "macBytes":[B
.end local v3 # "nif":Ljava/net/NetworkInterface;
.end local v4 # "res1":Ljava/lang/StringBuilder;
:catch_0
move-exception v5
.line 35
:cond_4
const-string v5, "02:00:00:00:00:00"
goto :goto_0
.end method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment