1 votes

Sortie netstat : des colonnes plus larges sur OS X?

Je suis en train d'utiliser netstat sur OS X. Comment puis-je obtenir des colonnes plus larges ?

Il semble que certaines informations (dans la colonne Adresse Locale) soient tronquées pour les noms d'hôtes, les adresses IP et les adresses Mac. Je n'ai rien trouvé dans le manuel. Merci

$ netstat
Connexions actives par Internet
Proto Recv-Q Send-Q  Adresse Locale          Adresse Distante        (état)
tcp6       0      0  xxxx-macboo.1024  fe80::b3ac:b3c2:.1024  SYN_SENT   
tcp6       0      0  2601:18c:c900:50.64154 2a04:4e42:1c::76.https ESTABLISHED
tcp4       0      0  10.0.0.11.64124        47.224.186.35.bc.https ESTABLISHED
tcp4       0      0  10.0.0.11.64120        10.0.0.6.59092         ESTABLISHED
tcp4       0      0  10.0.0.11.64106        205.245.190.35.b.https ESTABLISHED

2voto

JohnoBoy Points 16435

Malheureusement, je ne crois pas qu'il existe d'options pour vous donner exactement ce que vous voulez et empêcher Adresse Locale d'être tronquée (notez que l'entrée commençant par 2601:18c dans votre exemple est une adresse IPv6, pas une adresse MAC). L'option -W (Dans certains affichages, évitez de tronquer les adresses) semble donner ce que vous voulez mais elle tronque toujours les noms d'hôtes et les adresses IPv6.

Les options suivantes de netstat peuvent vous aider à atteindre votre objectif :

-l Afficher l'adresse IPv6 complète

-n Afficher les adresses réseau sous forme de nombres...

En utilisant une combinaison de ces deux options (netstat -ln), vous obtiendrez des adresses IPv4 et IPv6 non tronquées. Une fois que vous les avez, vous pouvez utiliser, par exemple, host, pour effectuer une recherche DNS de l'adresse IP afin d'obtenir le nom d'hôte si un enregistrement PTR existe pour celle-ci.

0 votes

Merci. Les gens utilisent-ils la sortie de netstat d'une manière différente? Je veux dire, si elle est tronquée, à quel point est-elle utile?

0 votes

Comme les FQDN peuvent être infiniment longs (contrairement aux adresses IP), les développeurs ont probablement dû prendre une décision sur la quantité de données à afficher. C'est toujours utile car les adresses IP sont affichées sans troncature.

0 votes

Y a-t-il une autre interface pour obtenir ces données? C'est-à-dire, y a-t-il un mode de sortie en CSV?

0voto

user3192145 Points 1

Pour obtenir des noms complets d'hôtes pour les adresses IPv4, je redirige netstat -anp tcp via Python, en revenant à l'IP si aucun n'est disponible-

tidy_netstat.py:

#!/usr/bin/env python3

import re
import socket
import sys

ip_cache = dict()
NS_ADDYS = re.compile(r"^(\w+).*\D(\d+\.\d+\.\d+\.\d+)\.\d+\s+(\d+\.\d+\.\d+\.\d+)\.\d+\s+(\S.+)$")

def get_ipv4_host(ip):
    if ip in ip_cache:
        return ip_cache[ip]
    try:
        info = socket.gethostbyaddr(ip)
    except socket.herror:
        return
    if info and info[0]:
        ip_cache[ip] = info[0]
        return info[0]

while line := sys.stdin.readline():
    res = NS_ADDYS.match(line)
    if res:
        proto, srcip, dstip, state = res.groups()
        if proto != 'tcp4':
            continue
        srchost, dsthost = get_ipv4_host(srcip), get_ipv4_host(dstip)
        print("\t".join((srchost or srcip, dsthost or dstip, state)))

Il y a probablement de meilleures façons de faire, mais ça fonctionne pour moi.

Combiné avec un exécuteur périodique, tel que watch, cela devient un moyen utile pour voir ce que fait votre machine et ses applications.

% watch -d sh -c "'netstat -anp tcp | ./tidy_netstat.py'"

J'ai une tâche cron qui écrit périodiquement le dsthost dans une table sqlite avec un compteur, juste pour voir où ma machine a été au fil du temps.

Ce qui est vraiment intéressant, c'est que je le lance juste après le démarrage, ou après avoir quitté tous les programmes GUI, et il y aura une ou deux connexions à des hôtes non nommés!

par ex. 17.57.144.23 - presque toujours elles appartiennent à un bloc IP Apple, comme celui-ci dans 17.0.0.0/9.

Depuis lors, je garde un oeil sur ces connexions-

% sudo tcpdump -vvvv -s 99999 -w /tmp/apple.pcap -i en5 net 17.0.0.0/9

Mais elles ont toutes été en TLS, jusqu'à présent, aucune donnée visible. (Pour votre information, je n'ai pas activé Localiser mon Mac).

1 votes

Observation intéressante et merci pour l'utilité!

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X