infraview

Rating: 
4.931035
Your rating: None Average: 4.9 (29 votes)

InfraView displays info about your current network environment.

Currently offering:

  • External IP info
  • Local IP info
  • Devices in network (nmap)
  • ARP cache table info/clearing
  • Local network port connections (netstat)
  • ConnMan connections
  • DNS resolving
  • Ping
  • Traceroute

Uses python-nmap, nmap dnspython

It has nmap-suid as a requirement, which runs as root. The netstat part is also taking root privileges to collect more detailed info.

Using ping and tracerout needs the following terminal action:

devel-su usermod -a nemo -G net_raw

If you are not comfortable with this, please to NOT install this app!
 

Sources on github

Screenshots: 

Keywords:

Application versions: 
AttachmentSizeDate
File harbour-infraview-0.3-3.i486.rpm976.06 KB20/10/2020 - 21:30
File harbour-infraview-0.3-4.armv7hl.rpm617.29 KB22/11/2020 - 19:39
File harbour-infraview-0.3-4.i486.rpm619.65 KB22/11/2020 - 19:39
File harbour-infraview-0.4-2.armv7hl.rpm617.45 KB28/11/2020 - 03:46
File harbour-infraview-0.4-2.i486.rpm619.57 KB28/11/2020 - 03:46
File harbour-infraview-0.4-3.armv7hl.rpm617.48 KB30/11/2020 - 15:01
File harbour-infraview-0.4-3.i486.rpm619.79 KB30/11/2020 - 15:01
File harbour-infraview-0.4-4.armv7hl.rpm617.55 KB05/02/2021 - 02:28
File harbour-infraview-0.4-4.i486.rpm619.67 KB05/02/2021 - 02:28
File harbour-infraview-0.4-4.aarch64.rpm619.09 KB15/05/2021 - 22:59
File harbour-infraview-0.4-5.aarch64.rpm641.01 KB28/06/2021 - 20:43
File harbour-infraview-0.4-5.armv7hl.rpm639.48 KB28/06/2021 - 20:43
File harbour-infraview-0.4-5.i486.rpm641.8 KB28/06/2021 - 20:43
File harbour-infraview-0.5-1.i486.rpm642.01 KB14/11/2021 - 22:02
File harbour-infraview-0.5-1.aarch64.rpm640.65 KB14/11/2021 - 22:02
File harbour-infraview-0.5-1.armv7hl.rpm639.45 KB14/11/2021 - 22:02
File harbour-infraview-0.6-1.aarch64.rpm661.36 KB04/02/2023 - 03:11
File harbour-infraview-0.6-1.i486.rpm661.97 KB04/02/2023 - 03:11
File harbour-infraview-0.6-1.armv7hl.rpm659.73 KB04/02/2023 - 03:11
Changelog: 

0.6.1 Remove path from "ip" as it changed in SFOS 4.5

0.5.1 Opt out of sailjail

0.4.5 New icon by JSEHV

0.4.4 External IP info now needs user-agent set
0.4.3 Dynamically update network details on frontpage on network change
0.4.2 Require extra dependency

0.4.1

  • Updated Chinese
  • No longer use deprecated statefs

0.3.4 Updated Spanish and Swedish

0.3.3

  • Updated serveral 3rd party python libraries
  • Removed hardcoded dependencies on user nemo

0.3.2 Removed non busybox grep compliant command

0.3.1

  • Added Chinese translation
  • Added ping tool page
  • Now verifying if user nemo is member of net_raw group (for ping and traceroute)

0.2.1

  • Load mainpage info async
  • Fixed dimmed color issue
  • Refresh option added on multiple pages
  • Added traceroute on tools page

0.1.20 Spanish, Swedish and Russian updated

0.1.19 Added ConnMan services (wifi)

0.1.18

  • Updated Spanish
  • Removed ISP location image, as it now requires Google apikey
  • Replaced ISP location image with OpenStreetMap link

0.1.17

  • Added Russian translation
  • Added DNS resolver

0.1.16 rescale Internet provider map to screen resolution

0.1.15 Spanish translation added and Dutch updated

0.1.14 Some fixes in netstat part

0.1.13 Fixed some security issues reported by robbbienert

0.1-12 Updated swedish

    0.1-11

    • Option to kill nemo processes in netstat screen
    • Sort netstat list on users and identify by color
    • Added option to clear entire arp cache
    • Added option to remove specific arp cache entry

    0.1-10 Added dutch, updated swedish

    0.1-9 Added refesh option for main screen

    0.1-8

    • Added missing network name
    • Info on coverpage

    0.1-7

    • updated swedish language
    • better landscape layout

    0.1-6

    • Added Swedish (thanks Eson57)
    • for wlan added: dns/dhcp/domain name/broadcast address

    0.1-5 Added missing idna library

    0.0.1-4 Added missing certifi library

    0.1-3 Added missing chardet library

    0.1-2

    • Added missing urllib3 to package
    • Added subnet mask

    0.1-1 Added local IP info
    0.1-0 Initial release
     

    Comments

    ade's picture

    it's using a different directory in my case. Another thing to solve, thanks for testing.

    kaulian's picture

    Thanks
    Now for me missing 'idna' module =)

    ade's picture

    okay, hopefully the last :-(

    PamNor's picture

    Testing 0.1-4
    Sorry to tell: External ip info -->
    Missing module idna?

    [nemo@Sailfish ~]$ harbour-infraview
    [D] unknown:0 - Using Wayland-EGL
    /usr/share/harbour-infraview/python/requests/__init
    __.py:80: RequestsDependencyWarning: urllib3 (dev)
    or chardet (3.0.4) doesn't match a supported versio
    n!
    RequestsDependencyWarning)
    [D] unknown:0 - "PyOtherSide error: Traceback (most
    recent call last):\n\n File \"/usr/share/harbour-
    infraview/qml/pages/call_location.py\", line 5, in
    \n from requests import get # not avail
    able by default!\n\n File \"/usr/share/harbour-inf
    raview/python/requests/__init__.py\", line 98, in <
    module>\n from . import packages\n\n File \"/us
    r/share/harbour-infraview/python/requests/packages.
    py\", line 7, in \n locals()[package] =
    __import__(package)\n\nImportError: No module named
    'idna'\n"
    [D] unknown:0 - "PyOtherSide error: Traceback (most
    recent call last):\n\n File \"\", line 1,
    in \n\nNameError: name 'call_location' is
    not defined\n"
    [D] onError:50 - Python ERROR: Cannot import module
    : call_location (Traceback (most recent call last):

    File "/usr/share/harbour-infraview/qml/pages/call
    _location.py", line 5, in
    from requests import get # not available by de
    fault!

    File "/usr/share/harbour-infraview/python/request
    s/__init__.py", line 98, in
    from . import packages

    File "/usr/share/harbour-infraview/python/request
    s/packages.py", line 7, in
    locals()[package] = __import__(package)

    ImportError: No module named 'idna'

    PamNor's picture

    Yep. nmap-suid is installed

    ade's picture

    It's not searching nmap in the right location in your case. I explicitly set a search path, so not clue what causes this atm.

    PamNor's picture

    Testing 0.1.3
    certifi missing?

    File "/usr/share/harbour-infraview/python/request
    s/__init__.py", line 97, in
    from . import utils

    File "/usr/share/harbour-infraview/python/request
    s/utils.py", line 24, in
    from . import certs

    File "/usr/share/harbour-infraview/python/request
    s/certs.py", line 15, in
    from certifi import where

    ImportError: No module named 'certifi'

    ade's picture

    too late, 0.1.4 is already available :-)

    PamNor's picture

    Testing 0.1-2
    Devices in current network/Show more info: -> Retriewing device info (forever)
    nmap-os-db file missing?

    [nemo@Sailfish ~]$ harbour-infraview
    [D] unknown:0 - Using Wayland-EGL
    [D] :15 - call_nmap module is now imported
    [D] :27 - call_nmap module is now imported
    [D] unknown:0 - "PyOtherSide error: Traceback (most
    recent call last):\n\n File \"/usr/share/harbour-
    infraview/python/nmap.py\", line 322, in analyse_nm
    ap_xml_scan\n dom = ET.fromstring(self._nmap_las
    t_output)\n\n File \"/usr/lib/python3.4/xml/etree/
    ElementTree.py\", line 1326, in XML\n return par
    ser.close()\n\n File \"\", line None\n\nxm
    l.etree.ElementTree.ParseError: no element found: l
    ine 1, column 0\n\n\nDuring handling of the above e
    xception, another exception occurred:\n\n\nTracebac
    k (most recent call last):\n\n File \"/usr/share/h
    arbour-infraview/qml/pages/call_nmap.py\", line 42,
    in devinfo\n nm.scan(ip, arguments=\"-O\")\n\n
    File \"/usr/share/harbour-infraview/python/nmap.py
    \", line 266, in scan\n nmap_warn_keep_trace=nma
    p_warn_keep_trace\n\n File \"/usr/share/harbour-in
    fraview/python/nmap.py\", line 325, in analyse_nmap
    _xml_scan\n raise PortScannerError(nmap_err)\n\n
    nmap.PortScannerError: 'OS scan requested but I can
    not find nmap-os-db file. It should be in /usr/loc
    al/share/nmap, ~/.nmap/ or .\\nQUITTING!\\n'\n"
    [D] onError:44 - Python ERROR: Return value of PyOb
    ject call is NULL: Traceback (most recent call last
    ):

    File "/usr/share/harbour-infraview/python/nmap.py
    ", line 322, in analyse_nmap_xml_scan
    dom = ET.fromstring(self._nmap_last_output)

    File "/usr/lib/python3.4/xml/etree/ElementTree.py
    ", line 1326, in XML
    return parser.close()

    File "", line None

    xml.etree.ElementTree.ParseError: no element found:
    line 1, column 0

    During handling of the above exception, another exc
    eption occurred:

    Traceback (most recent call last):

    File "/usr/share/harbour-infraview/qml/pages/call
    _nmap.py", line 42, in devinfo
    nm.scan(ip, arguments="-O")

    File "/usr/share/harbour-infraview/python/nmap.py
    ", line 266, in scan
    nmap_warn_keep_trace=nmap_warn_keep_trace

    File "/usr/share/harbour-infraview/python/nmap.py
    ", line 325, in analyse_nmap_xml_scan
    raise PortScannerError(nmap_err)

    nmap.PortScannerError: 'OS scan requested but I can
    not find nmap-os-db file. It should be in /usr/loc
    al/share/nmap, ~/.nmap/ or .\nQUITTING!\n'

    [D] onError:44 - Python ERROR: file:///usr/share/ha
    rbour-infraview/qml/pages/DeviceInfo.qml:31: TypeEr
    ror: Cannot read property '0' of undefined

    ade's picture

    It should be provided by nmap-suid (which is a dependency). Do you have that package installed?

    PamNor's picture

    Testing 0.1-2
    New error: Missing library chardet?

    [nemo@Sailfish ~]$ harbour-infraview
    [D] unknown:0 - Using Wayland-EGL
    [D] unknown:0 - "PyOtherSide error: Traceback (most
    recent call last):\n\n File \"/usr/share/harbour-
    infraview/qml/pages/call_location.py\", line 5, in
    \n from requests import get # not avail
    able by default!\n\n File \"/usr/share/harbour-inf
    raview/python/requests/__init__.py\", line 44, in <
    module>\n import chardet\n\nImportError: No modu
    le named 'chardet'\n"
    [D] unknown:0 - "PyOtherSide error: Traceback (most
    recent call last):\n\n File \"\", line 1,
    in \n\nNameError: name 'call_location' is
    not defined\n"
    [D] onError:50 - Python ERROR: Cannot import module
    : call_location (Traceback (most recent call last):

    File "/usr/share/harbour-infraview/qml/pages/call
    _location.py", line 5, in
    from requests import get # not available by de
    fault!

    File "/usr/share/harbour-infraview/python/request
    s/__init__.py", line 44, in
    import chardet

    ImportError: No module named 'chardet'
    )
    [D] :29 - call_location module is now imported
    [D] onError:50 - Python ERROR: Function not found:
    'call_location.get_geolocation' (Traceback (most re
    cent call last):

    File "", line 1, in

    NameError: name 'call_location' is not defined
    )
    [D] :33 - undefined
    [D] onError:50 - Python ERROR: file:///usr/share/ha
    rbour-infraview/qml/pages/LocationInfo.qml:34: Type
    Error: Cannot read property '0' of undefined
    screen -Dr
    failed to register buffer
    Minnesegmentsfeil
    [nemo@Sailfish ~]$ screen -Dr
    There is no screen to be detached.

    ade's picture

    That's fast :-) Gonna add it in 0.0.1-3

    explit's picture

    Very good app, thanks! I found one issue on Fairphone FP2 and Sailfish 2.1.0.11: External IP info is hanging and doesn't show. On Wlan and LTE.
    How could it be solved?

    ade's picture

    I would expect it to show "unknown" if something goes wrong.

    https://api.ipify.org should give you your external IP.
    https://tools.keycdn.com/geo.json?host=<your_external_ip> should give you "whois" info.
    Does that work from your phone (you can try in the browser)?

    If it does, could you start harbour-infraview from terminal and show me the output from opening the external ip page? It should show a line with internet provider info.
    You can replace any output values with dummy values where if you want to show your provider info here.

    It also loads an google image from the location of the provider, but can't imagine your issue is related to this.

    explit's picture

    Here is the output by starting from terminal:

    [nemo@Fairphone-FP2 ~]$ harbour-infraview
    [D] unknown:0 - Using Wayland-EGL
    [W] unknown:0 - Defaulting to webview scaling factor of 1.0
    [W] unknown:0 - No default allowed orientations defined. Check your device c
    onfiguration!
    [D] unknown:0 - "PyOtherSide error: Traceback (most recent call last):\n\n
    File \"/usr/share/harbour-infraview/qml/pages/call_location.py\", line 5, in
    \n from requests import get # not available by default!\n\n Fi
    le \"/usr/share/harbour-infraview/python/requests/__init__.py\", line 43, in
    \n import urllib3\n\nImportError: No module named 'urllib3'\n"
    [D] unknown:0 - "PyOtherSide error: Traceback (most recent call last):\n\n
    File \"\", line 1, in \n\nNameError: name 'call_location' is
    not defined\n"
    [D] onError:50 - Python ERROR: Cannot import module: call_location (Tracebac
    k (most recent call last):

    File "/usr/share/harbour-infraview/qml/pages/call_location.py", line 5, in

    from requests import get # not available by default!

    File "/usr/share/harbour-infraview/python/requests/__init__.py", line 43,
    in
    import urllib3

    ImportError: No module named 'urllib3'
    )
    [D] :29 - call_location module is now imported
    [D] onError:50 - Python ERROR: Function not found: 'call_location.get_geoloc
    ation' (Traceback (most recent call last):

    File "", line 1, in

    NameError: name 'call_location' is not defined
    )
    [D] :33 - undefined
    [D] onError:50 - Python ERROR: file:///usr/share/harbour-infraview/qml/pages
    /LocationInfo.qml:34: TypeError: Cannot read property '0' of undefined

    ade's picture

    Okay, looks like a local issue with python modules. Will investigate further.

    explit's picture

    Thanks ade!

    ade's picture

    should be fixed in 0.0.1-2

    explit's picture

    Thanks ade for the info:
    The first link you send me show on my FP2. 2.247.246.200
    Secon link answer with an long string:
    {"status":"success","description":"Data successfully received.","data":{"geo":{"host":"2.247.246.200","ip":"2.247.246.200","rdns":"x2f7f6c8.dyn.telefonica.de","asn":"AS6805","isp":"Telefonica Germany ","country_name":"Germany","country_code":"DE","region":"","city":"","postal_code":"","continent_code":"EU","latitude":"51.299301147461","longitude":"9.4910001754761","dma_code":"0","area_code":"0","timezone":"Europe\/Berlin","datetime":"2017-07-31 11:11:44"}}}

    ade's picture

    Thanks for the positive responses!
    I am open to suggestions, but keep in mind that my goal is not to create some exploit/penetration test suite.
    My objective is to get an overview of my network(devices), hence the name.

    Jordi's picture

    Good, what about cutting or throttling the internet access for a device in the network/ip adress?

    ade's picture

    This goes beyond the scope of viewing. Technically it is also not possible. You can prevent client internet access from a central router/firewall, but not from a client itself. It would be a design mistake if any random client could block other clients.
    Using iptables you can control access rights on your own device, that's all afaik.

    Jordi's picture

    Excellent!!

    More features, please! (like what does cSploit...)    ;-)

    minitreintje's picture

    Very handy :)

    explit's picture

    Very cool and usefull tool!
    Looking foward further development!

    Pages