Sample Header Ad - 728x90

Using grep to extract IP through adb shell

0 votes
1 answer
1869 views
I'm trying to create a one-line, platform-independent solution for finding the local IP address of a Android device with adb shell and grep (the internal grep on my android device). I have a solution that works, but something keeps bothering me. By the way, I'm running my solution from within Powershell 7, if that makes any difference. Here's my solution:
> adb shell "ip addr show wlan0 | grep -e 'inet[^6]'"
    inet 192.168.0.19/22 brd 192.168.3.255 scope global wlan0
It works, but I cannot use \d as a character class to filter, which would be preferable. My preferred solution would show JUST the IP address and nothing else. This is the best I could do:
> adb shell "ip addr show wlan0 | grep -o '^    inet [0-9][0-9][0-9].[0-9][0-9][0-9].[0-9]'"
    inet 192.168.0
Android seems to ship with a limited terminal setting and uses 'toybox' to emulate the typical bash tools. They seem quite limited though, and not very much documentation is provided. Since I can't use digit character classes or quantifiers, I can only filter for the line, and using -o is the only way to output information. So, my preferred solution is effectively impossible to do. What can I do to extract just my local IP address with this limited toolset?
Asked by Xevion (103 rep)
Jun 8, 2022, 10:14 PM
Last activity: Jun 8, 2022, 11:41 PM