Skip to content

Commit faaa9e0

Browse files
Merge pull request #466 from gainan/issue_454
find a valid ipv4 address
2 parents 18a6395 + 1815524 commit faaa9e0

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

cSploit/src/main/java/org/csploit/android/net/Network.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import android.net.NetworkInfo;
2525
import android.net.wifi.WifiInfo;
2626
import android.net.wifi.WifiManager;
27+
import android.util.Patterns;
2728

2829
import org.apache.commons.compress.utils.IOUtils;
2930
import org.apache.commons.net.util.SubnetUtils;
@@ -150,18 +151,29 @@ private static Method getTetheredIfacesMethod(ConnectivityManager connectivityMa
150151

151152
public boolean initNetworkInterface(String iface) {
152153

154+
InterfaceAddress ifaceAddress = null;
153155
try {
154156
if (iface == null)
155157
iface = getAvailableInterfaces().get(0);
156158

157159
mInterface = NetworkInterface.getByName(iface);
158-
InterfaceAddress ifaceAddress;
159160

160161
if (mInterface.getInterfaceAddresses().isEmpty()) {
161162
return false;
162163
}
163164

164-
ifaceAddress = mInterface.getInterfaceAddresses().get(1);
165+
for (InterfaceAddress ia : mInterface.getInterfaceAddresses()) {
166+
if(Patterns.IP_ADDRESS.matcher(ia.getAddress().getHostAddress()).matches()) {
167+
ifaceAddress = ia;
168+
Logger.warning("interfaceAddress: " + ia.getAddress().getHostAddress() + "/" + Short.toString(ia.getNetworkPrefixLength()));
169+
break;
170+
}
171+
else
172+
Logger.error("not valid ip: " + ia.getAddress().getHostAddress() + "/" + Short.toString(ia.getNetworkPrefixLength()));
173+
}
174+
if (ifaceAddress == null){
175+
return false;
176+
}
165177

166178
SubnetUtils su = new SubnetUtils(
167179
// get(1) == ipv4

0 commit comments

Comments
 (0)