Skip to content

Réseau

[Stable : 2 - Stable]

Stable : 2 Stabilité : 2 - Stable

Code source : lib/net.js

Le module node:net fournit une API réseau asynchrone pour créer des serveurs TCP ou IPC (net.createServer()) et des clients (net.createConnection()) basés sur des flux.

Il est accessible via :

js
import net from 'node:net'
js
const net = require('node:net')

Prise en charge IPC

[Historique]

VersionModifications
v20.8.0Prise en charge de la liaison à un chemin de socket de domaine Unix abstrait comme \0abstract. On pouvait lier '\0' pour Node.js \< v20.4.0.

Le module node:net prend en charge l’IPC avec les pipes nommées sous Windows et les sockets de domaine Unix sur les autres systèmes d’exploitation.

Identification des chemins pour les connexions IPC

net.connect(), net.createConnection(), server.listen() et socket.connect() prennent un paramètre path pour identifier les points de terminaison IPC.

Sous Unix, le domaine local est également connu sous le nom de domaine Unix. Le chemin est un nom de fichier système. Une erreur sera levée si la longueur du nom de chemin est supérieure à la longueur de sizeof(sockaddr_un.sun_path). Les valeurs typiques sont 107 octets sous Linux et 103 octets sous macOS. Si une abstraction de l’API Node.js crée le socket de domaine Unix, elle supprimera également le socket de domaine Unix. Par exemple, net.createServer() peut créer un socket de domaine Unix et server.close() le supprimera. Mais si un utilisateur crée le socket de domaine Unix en dehors de ces abstractions, l’utilisateur devra le supprimer. Il en va de même lorsqu’une API Node.js crée un socket de domaine Unix, mais que le programme plante ensuite. En bref, un socket de domaine Unix sera visible dans le système de fichiers et persistera jusqu’à ce qu’il soit supprimé. Sous Linux, vous pouvez utiliser un socket abstrait Unix en ajoutant \0 au début du chemin, par exemple \0abstract. Le chemin vers le socket abstrait Unix n’est pas visible dans le système de fichiers et il disparaîtra automatiquement lorsque toutes les références ouvertes au socket seront fermées.

Sous Windows, le domaine local est implémenté à l’aide d’une pipe nommée. Le chemin doit faire référence à une entrée dans \\?\pipe\ ou \\.\pipe\. Tous les caractères sont autorisés, mais ce dernier peut effectuer un certain traitement des noms de pipes, comme la résolution des séquences ... Malgré son apparence, l’espace de noms des pipes est plat. Les pipes ne persisteront pas. Elles sont supprimées lorsque la dernière référence à celles-ci est fermée. Contrairement aux sockets de domaine Unix, Windows fermera et supprimera la pipe lorsque le processus propriétaire se termine.

L’échappement des chaînes JavaScript nécessite que les chemins soient spécifiés avec un échappement de barre oblique inverse supplémentaire, tel que :

js
net.createServer().listen(path.join('\\\\?\\pipe', process.cwd(), 'myctl'))

Classe : net.BlockList

Ajouté dans : v15.0.0, v14.18.0

L'objet BlockList peut être utilisé avec certaines API réseau pour spécifier des règles de désactivation de l'accès entrant ou sortant à des adresses IP, des plages d'adresses IP ou des sous-réseaux IP spécifiques.

blockList.addAddress(address[, type])

Ajouté dans : v15.0.0, v14.18.0

Ajoute une règle pour bloquer l'adresse IP donnée.

blockList.addRange(start, end[, type])

Ajouté dans : v15.0.0, v14.18.0

Ajoute une règle pour bloquer une plage d'adresses IP de start (inclus) à end (inclus).

blockList.addSubnet(net, prefix[, type])

Ajouté dans : v15.0.0, v14.18.0

  • net <string> | <net.SocketAddress> L'adresse réseau IPv4 ou IPv6.
  • prefix <number> Le nombre de bits de préfixe CIDR. Pour IPv4, cela doit être une valeur comprise entre 0 et 32. Pour IPv6, cela doit être compris entre 0 et 128.
  • type <string> Soit 'ipv4' ou 'ipv6'. Par défaut : 'ipv4'.

Ajoute une règle pour bloquer une plage d'adresses IP spécifiée sous forme de masque de sous-réseau.

blockList.check(address[, type])

Ajouté dans : v15.0.0, v14.18.0

Retourne true si l'adresse IP donnée correspond à l'une des règles ajoutées à BlockList.

js
const blockList = new net.BlockList()
blockList.addAddress('123.123.123.123')
blockList.addRange('10.0.0.1', '10.0.0.10')
blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6')

console.log(blockList.check('123.123.123.123')) // Affiche : true
console.log(blockList.check('10.0.0.3')) // Affiche : true
console.log(blockList.check('222.111.111.222')) // Affiche : false

// La notation IPv6 pour les adresses IPv4 fonctionne :
console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')) // Affiche : true
console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')) // Affiche : true

blockList.rules

Ajouté dans : v15.0.0, v14.18.0

La liste des règles ajoutées à la liste de blocage.

BlockList.isBlockList(value)

Ajouté dans : v23.4.0

  • value <any> Toute valeur JS
  • Retourne true si la value est une net.BlockList.

Classe : net.SocketAddress

Ajouté dans : v15.14.0, v14.18.0

new net.SocketAddress([options])

Ajouté dans : v15.14.0, v14.18.0

  • options <Object>
    • address <string> L'adresse réseau sous forme de chaîne IPv4 ou IPv6. Par défaut : '127.0.0.1' si family est 'ipv4' ; '::' si family est 'ipv6'.
    • family <string> 'ipv4' ou 'ipv6'. Par défaut : 'ipv4'.
    • flowlabel <number> Un flow-label IPv6 utilisé uniquement si family est 'ipv6'.
    • port <number> Un port IP.

socketaddress.address

Ajouté dans : v15.14.0, v14.18.0

socketaddress.family

Ajouté dans : v15.14.0, v14.18.0

socketaddress.flowlabel

Ajouté dans : v15.14.0, v14.18.0

socketaddress.port

Ajouté dans : v15.14.0, v14.18.0

SocketAddress.parse(input)

Ajouté dans : v23.4.0

  • input <string> Une chaîne de caractères contenant une adresse IP et un port optionnel, par exemple : 123.1.2.3:1234 ou [1::1]:1234.
  • Retourne : <net.SocketAddress> Retourne un SocketAddress si l'analyse a réussi. Sinon, retourne undefined.

Classe : net.Server

Ajouté dans : v0.1.90

Cette classe est utilisée pour créer un serveur TCP ou IPC.

new net.Server([options][, connectionListener])

net.Server est un EventEmitter avec les événements suivants :

Événement : 'close'

Ajouté dans : v0.5.0

Émis lorsque le serveur se ferme. Si des connexions existent, cet événement n'est pas émis tant que toutes les connexions ne sont pas terminées.

Événement : 'connection'

Ajouté dans : v0.1.90

Émis lorsqu'une nouvelle connexion est établie. socket est une instance de net.Socket.

Événement : 'error'

Ajouté dans : v0.1.90

Émis lorsqu'une erreur se produit. Contrairement à net.Socket, l'événement 'close' ne sera pas émis directement après cet événement, sauf si server.close() est appelé manuellement. Voir l'exemple dans la discussion de server.listen().

Événement : 'listening'

Ajouté dans : v0.1.90

Émis lorsque le serveur a été lié après avoir appelé server.listen().

Événement : 'drop'

Ajouté dans : v18.6.0, v16.17.0

Lorsque le nombre de connexions atteint le seuil de server.maxConnections, le serveur rejettera les nouvelles connexions et émettra l'événement 'drop' à la place. S'il s'agit d'un serveur TCP, l'argument est le suivant, sinon l'argument est undefined.

  • data <Object> L'argument passé à l'écouteur d'événements.

server.address()

[Historique]

VersionModifications
v18.4.0La propriété family retourne désormais une chaîne de caractères au lieu d'un nombre.
v18.0.0La propriété family retourne désormais un nombre au lieu d'une chaîne de caractères.
v0.1.90Ajouté dans : v0.1.90

Retourne l'adresse address liée, le nom de la family de l'adresse, et le port du serveur tels que rapportés par le système d'exploitation s'il est à l'écoute sur un socket IP (utile pour trouver quel port a été assigné lors de l'obtention d'une adresse assignée par le système d'exploitation) : { port: 12346, family: 'IPv4', address: '127.0.0.1' }.

Pour un serveur écoutant sur un tube ou un socket de domaine Unix, le nom est retourné sous forme de chaîne.

js
const server = net
  .createServer(socket => {
    socket.end('au revoir\n')
  })
  .on('error', err => {
    // Gérer les erreurs ici.
    throw err
  })

// Récupérer un port inutilisé arbitraire.
server.listen(() => {
  console.log('serveur ouvert sur', server.address())
})

server.address() retourne null avant que l'événement 'listening' n'ait été émis ou après avoir appelé server.close().

server.close([callback])

Ajouté dans : v0.1.90

Empêche le serveur d'accepter de nouvelles connexions et maintient les connexions existantes. Cette fonction est asynchrone, le serveur est finalement fermé lorsque toutes les connexions sont terminées et que le serveur émet un événement 'close'. La callback facultative sera appelée une fois que l'événement 'close' se produira. Contrairement à cet événement, elle sera appelée avec une Error comme seul argument si le serveur n'était pas ouvert lorsqu'il a été fermé.

server[Symbol.asyncDispose]()

Ajouté dans : v20.5.0, v18.18.0

[Stable: 1 - Expérimental]

Stable: 1 Stability: 1 - Expérimental

Appelle server.close() et renvoie une promesse qui est résolue lorsque le serveur est fermé.

server.getConnections(callback)

Ajouté dans : v0.9.7

Récupère de manière asynchrone le nombre de connexions simultanées sur le serveur. Fonctionne lorsque des sockets ont été envoyés à des forks.

Le callback doit prendre deux arguments : err et count.

server.listen()

Démarre un serveur écoutant les connexions. Un net.Server peut être un serveur TCP ou un serveur IPC selon ce qu’il écoute.

Signatures possibles :

Cette fonction est asynchrone. Lorsque le serveur commence à écouter, l’événement 'listening' est émis. Le dernier paramètre callback sera ajouté en tant qu’écouteur de l’événement 'listening'.

Toutes les méthodes listen() peuvent prendre un paramètre backlog pour spécifier la longueur maximale de la file d’attente des connexions en attente. La longueur réelle sera déterminée par le système d’exploitation via des paramètres sysctl tels que tcp_max_syn_backlog et somaxconn sur Linux. La valeur par défaut de ce paramètre est de 511 (et non 512).

Tous les net.Socket sont définis sur SO_REUSEADDR (voir socket(7) pour plus de détails).

La méthode server.listen() peut être appelée de nouveau si et seulement si une erreur s’est produite lors du premier appel de server.listen() ou si server.close() a été appelé. Sinon, une erreur ERR_SERVER_ALREADY_LISTEN sera levée.

L’une des erreurs les plus courantes levées lors de l’écoute est EADDRINUSE. Cela se produit lorsqu’un autre serveur écoute déjà sur le port/path/handle demandé. Une façon de gérer cela serait de réessayer après un certain temps :

js
server.on('error', e => {
  if (e.code === 'EADDRINUSE') {
    console.error('Adresse déjà utilisée, nouvelle tentative...')
    setTimeout(() => {
      server.close()
      server.listen(PORT, HOST)
    }, 1000)
  }
})

server.listen(handle[, backlog][, callback])

Ajouté dans : v0.5.10

Démarre un serveur écoutant les connexions sur un handle donné qui a déjà été lié à un port, un socket de domaine Unix ou un pipe nommé Windows.

L'objet handle peut être soit un serveur, soit un socket (tout élément avec un membre _handle sous-jacent), soit un objet avec un membre fd qui est un descripteur de fichier valide.

L'écoute sur un descripteur de fichier n'est pas prise en charge sous Windows.

server.listen(options[, callback])

[Historique]

VersionModifications
v23.1.0L'option reusePort est prise en charge.
v15.6.0La prise en charge de AbortSignal a été ajoutée.
v11.4.0L'option ipv6Only est prise en charge.
v0.11.14Ajouté dans : v0.11.14
  • options <Object> Requis. Prend en charge les propriétés suivantes :

    • backlog <number> Paramètre commun des fonctions server.listen().
    • exclusive <boolean> Par défaut : false
    • host <string>
    • ipv6Only <boolean> Pour les serveurs TCP, définir ipv6Only sur true désactivera la prise en charge de la double pile, c'est-à-dire que la liaison à l'hôte :: n'entraînera pas la liaison de 0.0.0.0. Par défaut : false.
    • reusePort <boolean> Pour les serveurs TCP, définir reusePort sur true permet à plusieurs sockets sur le même hôte de se lier au même port. Les connexions entrantes sont distribuées par le système d'exploitation aux sockets d'écoute. Cette option n'est disponible que sur certaines plateformes, telles que Linux 3.9+, DragonFlyBSD 3.6+, FreeBSD 12.0+, Solaris 11.4 et AIX 7.2.5+. Par défaut : false.
    • path <string> Sera ignoré si port est spécifié. Voir Identification des chemins pour les connexions IPC.
    • port <number>
    • readableAll <boolean> Pour les serveurs IPC, rend le pipe lisible pour tous les utilisateurs. Par défaut : false.
    • signal <AbortSignal> Un AbortSignal qui peut être utilisé pour fermer un serveur d'écoute.
    • writableAll <boolean> Pour les serveurs IPC, rend le pipe accessible en écriture pour tous les utilisateurs. Par défaut : false.
  • callback <Function> functions.

  • Renvoie : <net.Server>

Si port est spécifié, il se comporte comme server.listen([port[, host[, backlog]]][, callback]). Sinon, si path est spécifié, il se comporte comme server.listen(path[, backlog][, callback]). Si aucun d'eux n'est spécifié, une erreur sera levée.

Si exclusive est false (par défaut), les workers de cluster utiliseront le même handle sous-jacent, ce qui permettra de partager les tâches de gestion des connexions. Lorsque exclusive est true, le handle n'est pas partagé et la tentative de partage de port entraîne une erreur. Un exemple d'écoute sur un port exclusif est présenté ci-dessous.

js
server.listen({
  host: 'localhost',
  port: 80,
  exclusive: true,
})

Lorsque exclusive est true et que le handle sous-jacent est partagé, il est possible que plusieurs workers interrogent un handle avec des files d'attente différentes. Dans ce cas, la première backlog passée au processus maître sera utilisée.

Le démarrage d'un serveur IPC en tant que root peut empêcher l'accès au chemin du serveur pour les utilisateurs non privilégiés. L'utilisation de readableAll et writableAll rendra le serveur accessible à tous les utilisateurs.

Si l'option signal est activée, l'appel de .abort() sur le AbortController correspondant est similaire à l'appel de .close() sur le serveur :

js
const controller = new AbortController()
server.listen({
  host: 'localhost',
  port: 80,
  signal: controller.signal,
})
// Plus tard, lorsque vous souhaitez fermer le serveur.
controller.abort()

server.listen(path[, backlog][, callback])

Ajouté dans : v0.1.90

Démarre un serveur IPC qui écoute les connexions sur le chemin donné.

server.listen([port[, host[, backlog]]][, callback])

Ajouté dans : v0.1.90

Démarre un serveur TCP qui écoute les connexions sur le port et l'hôte donnés.

Si port est omis ou est 0, le système d’exploitation attribuera un port inutilisé arbitraire, qui peut être récupéré en utilisant server.address().port après que l’événement 'listening' a été émis.

Si host est omis, le serveur acceptera les connexions sur l'adresse IPv6 non spécifiée (::) lorsque IPv6 est disponible, ou l'adresse IPv4 non spécifiée (0.0.0.0) dans le cas contraire.

Dans la plupart des systèmes d’exploitation, l’écoute de l'adresse IPv6 non spécifiée (::) peut amener net.Server à écouter également sur l'adresse IPv4 non spécifiée (0.0.0.0).

server.listening

Ajouté dans : v5.7.0

  • <boolean> Indique si le serveur est à l'écoute des connexions.

server.maxConnections

[Historique]

VersionModifications
v21.0.0Définir maxConnections à 0 supprime toutes les connexions entrantes. Auparavant, il était interprété comme Infinity.
v0.2.0Ajouté dans : v0.2.0

Lorsque le nombre de connexions atteint le seuil server.maxConnections :

Il n'est pas recommandé d'utiliser cette option une fois qu'un socket a été envoyé à un enfant avec child_process.fork().

server.dropMaxConnection

Ajouté dans : v23.1.0

Définissez cette propriété sur true pour commencer à fermer les connexions une fois que le nombre de connexions atteint le seuil [server.maxConnections][]. Ce paramètre n'est effectif qu'en mode cluster.

server.ref()

Ajouté dans : v0.9.1

À l'opposé de unref(), appeler ref() sur un serveur précédemment unref n'empêchera pas le programme de se terminer s'il s'agit du seul serveur restant (le comportement par défaut). Si le serveur est ref, appeler ref() à nouveau n'aura aucun effet.

server.unref()

Ajouté dans : v0.9.1

Appeler unref() sur un serveur permettra au programme de se terminer s'il s'agit du seul serveur actif dans le système d'événements. Si le serveur est déjà unref, appeler unref() à nouveau n'aura aucun effet.

Classe : net.Socket

Ajouté dans : v0.3.4

Cette classe est une abstraction d'un socket TCP ou d'un point de terminaison IPC en flux continu (utilise des pipes nommés sous Windows et des sockets de domaine Unix sinon). C'est aussi un EventEmitter.

Un net.Socket peut être créé par l'utilisateur et utilisé directement pour interagir avec un serveur. Par exemple, il est renvoyé par net.createConnection(), afin que l'utilisateur puisse l'utiliser pour parler au serveur.

Il peut également être créé par Node.js et transmis à l'utilisateur lorsqu'une connexion est reçue. Par exemple, il est transmis aux écouteurs d'un événement 'connection' émis sur un net.Server, afin que l'utilisateur puisse l'utiliser pour interagir avec le client.

new net.Socket([options])

[Historique]

VersionModifications
v15.14.0Ajout du support pour AbortSignal.
v12.10.0Ajout de l'option onread.
v0.3.4Ajouté dans : v0.3.4
  • options <Object> Les options disponibles sont :

    • allowHalfOpen <boolean> Si la valeur est false, le socket mettra automatiquement fin au côté accessible en écriture lorsque le côté accessible en lecture se terminera. Voir net.createServer() et l’événement 'end' pour plus de détails. Par défaut : false.

    • fd <number> S’il est spécifié, entoure un socket existant avec le descripteur de fichier donné, sinon un nouveau socket sera créé.

    • onread <Object> S’il est spécifié, les données entrantes sont stockées dans un seul buffer et transmises au callback fourni lorsque les données arrivent sur le socket. Cela entraînera l’arrêt de la fonctionnalité de diffusion en continu. Le socket émettra des événements tels que 'error', 'end' et 'close' comme d’habitude. Les méthodes telles que pause() et resume() se comporteront également comme prévu.

    • buffer <Buffer> | <Uint8Array> | <Function> Soit un morceau de mémoire réutilisable à utiliser pour stocker les données entrantes, soit une fonction qui en retourne un tel.

    • callback <Function> Cette fonction est appelée pour chaque bloc de données entrantes. Deux arguments lui sont transmis : le nombre d’octets écrits dans buffer et une référence à buffer. Retournez false à partir de cette fonction pour pause() implicitement le socket. Cette fonction sera exécutée dans le contexte global.

    • readable <boolean> Autorise les lectures sur le socket lorsqu’un fd est transmis, sinon ignoré. Par défaut : false.

    • signal <AbortSignal> Un signal d’abandon qui peut être utilisé pour détruire le socket.

    • writable <boolean> Autorise les écritures sur le socket lorsqu’un fd est transmis, sinon ignoré. Par défaut : false.

  • Retourne : <net.Socket>

Crée un nouvel objet socket.

Le socket nouvellement créé peut être soit un socket TCP, soit un point de terminaison IPC de diffusion en continu, selon ce à quoi il se connect().

Événement : 'close'

Ajouté dans : v0.1.90

  • hadError <boolean> true si le socket a eu une erreur de transmission.

Émis une fois que le socket est complètement fermé. L'argument hadError est un booléen qui indique si le socket a été fermé en raison d'une erreur de transmission.

Événement : 'connect'

Ajouté dans : v0.1.90

Émis lorsqu'une connexion socket est établie avec succès. Voir net.createConnection().

Événement : 'connectionAttempt'

Ajouté dans : v21.6.0, v20.12.0

  • ip <string> L'adresse IP à laquelle le socket tente de se connecter.
  • port <number> Le port auquel le socket tente de se connecter.
  • family <number> La famille de l'adresse IP. Elle peut être 6 pour IPv6 ou 4 pour IPv4.

Émis lorsqu'une nouvelle tentative de connexion démarre. Ceci peut être émis plusieurs fois si l'algorithme de sélection automatique de la famille est activé dans socket.connect(options).

Événement : 'connectionAttemptFailed'

Ajouté dans : v21.6.0, v20.12.0

  • ip <string> L'adresse IP à laquelle le socket a tenté de se connecter.
  • port <number> Le port auquel le socket a tenté de se connecter.
  • family <number> La famille de l'adresse IP. Elle peut être 6 pour IPv6 ou 4 pour IPv4.
  • error <Error> L'erreur associée à l'échec.

Émis lorsqu'une tentative de connexion a échoué. Ceci peut être émis plusieurs fois si l'algorithme de sélection automatique de la famille est activé dans socket.connect(options).

Événement : 'connectionAttemptTimeout'

Ajouté dans : v21.6.0, v20.12.0

  • ip <string> L'adresse IP à laquelle le socket a tenté de se connecter.
  • port <number> Le port auquel le socket a tenté de se connecter.
  • family <number> La famille de l'adresse IP. Elle peut être 6 pour IPv6 ou 4 pour IPv4.

Émis lorsqu'une tentative de connexion a expiré. Cet événement n'est émis (et peut être émis plusieurs fois) que si l'algorithme de sélection automatique de la famille est activé dans socket.connect(options).

Événement : 'data'

Ajouté dans : v0.1.90

Émis lorsque des données sont reçues. L'argument data sera un Buffer ou une String. L'encodage des données est défini par socket.setEncoding().

Les données seront perdues s'il n'y a pas d'écouteur lorsqu'un Socket émet un événement 'data'.

Événement : 'drain'

Ajouté dans : v0.1.90

Émis lorsque le tampon d'écriture devient vide. Peut être utilisé pour limiter les chargements.

Voir aussi : les valeurs de retour de socket.write().

Événement : 'end'

Ajouté dans : v0.1.90

Émis lorsque l'autre extrémité du socket signale la fin de la transmission, ce qui met fin au côté lisible du socket.

Par défaut (allowHalfOpen est false), le socket renverra un paquet de fin de transmission et détruira son descripteur de fichier une fois qu'il aura écrit sa file d'attente d'écriture en attente. Cependant, si allowHalfOpen est défini sur true, le socket ne fera pas automatiquement end() de son côté accessible en écriture, ce qui permet à l'utilisateur d'écrire des quantités arbitraires de données. L'utilisateur doit appeler explicitement end() pour fermer la connexion (c'est-à-dire envoyer un paquet FIN en retour).

Événement : 'error'

Ajouté dans : v0.1.90

Émis lorsqu'une erreur se produit. L'événement 'close' sera appelé directement après cet événement.

Événement : 'lookup'

[Historique]

VersionModifications
v5.10.0Le paramètre host est désormais pris en charge.
v0.11.3Ajouté dans : v0.11.3

Émis après la résolution du nom d'hôte mais avant la connexion. Non applicable aux sockets Unix.

Événement : 'ready'

Ajouté dans : v9.11.0

Émis lorsqu'un socket est prêt à être utilisé.

Déclenché immédiatement après 'connect'.

Événement : 'timeout'

Ajouté dans : v0.1.90

Émis si le socket expire par inactivité. Ceci sert uniquement à notifier que le socket est resté inactif. L'utilisateur doit fermer manuellement la connexion.

Voir aussi : socket.setTimeout().

socket.address()

[Historique]

VersionModifications
v18.4.0La propriété family renvoie désormais une chaîne au lieu d'un nombre.
v18.0.0La propriété family renvoie désormais un nombre au lieu d'une chaîne.
v0.1.90Ajouté dans : v0.1.90

Retourne l'address lié, le nom de family d'adresse et le port du socket tels que rapportés par le système d'exploitation : { port: 12346, family: 'IPv4', address: '127.0.0.1' }

socket.autoSelectFamilyAttemptedAddresses

Ajouté dans : v19.4.0, v18.18.0

Cette propriété est uniquement présente si l’algorithme de sélection automatique de famille est activé dans socket.connect(options) et il s’agit d’un tableau des adresses qui ont été tentées.

Chaque adresse est une chaîne de caractères sous la forme $IP:$PORT. Si la connexion a réussi, la dernière adresse est celle à laquelle le socket est actuellement connecté.

socket.bufferSize

Ajouté dans : v0.3.8

Déprécié depuis : v14.6.0

[Stable: 0 - Déprécié]

Stable : 0 Stabilité : 0 - Déprécié : utilisez plutôt writable.writableLength.

Cette propriété affiche le nombre de caractères mis en mémoire tampon pour l’écriture. La mémoire tampon peut contenir des chaînes de caractères dont la longueur après l’encodage n’est pas encore connue. Ce nombre n’est donc qu’une approximation du nombre d’octets dans la mémoire tampon.

net.Socket a la propriété que socket.write() fonctionne toujours. Ceci afin d’aider les utilisateurs à démarrer et à fonctionner rapidement. L’ordinateur ne peut pas toujours suivre la quantité de données qui sont écrites dans un socket. La connexion réseau peut être tout simplement trop lente. Node.js mettra en file d’attente en interne les données écrites dans un socket et les enverra via le réseau lorsque cela est possible.

La conséquence de cette mise en mémoire tampon interne est que la mémoire peut augmenter. Les utilisateurs qui rencontrent une bufferSize importante ou croissante doivent essayer de « limiter » les flux de données dans leur programme avec socket.pause() et socket.resume().

socket.bytesRead

Ajouté dans : v0.5.3

La quantité d’octets reçus.

socket.bytesWritten

Ajouté dans : v0.5.3

Quantité d'octets envoyés.

socket.connect()

Amorce une connexion sur un socket donné.

Signatures possibles :

Cette fonction est asynchrone. Lorsque la connexion est établie, l'événement 'connect' est émis. S'il y a un problème de connexion, au lieu d'un événement 'connect', un événement 'error' sera émis avec l'erreur transmise au listener 'error'. Le dernier paramètre connectListener, s'il est fourni, sera ajouté en tant que listener pour l'événement 'connect' une seule fois.

Cette fonction ne doit être utilisée que pour reconnecter un socket après l'émission de 'close', sinon elle peut entraîner un comportement indéfini.

socket.connect(options[, connectListener])

[Historique]

VersionChangements
v19.4.0La valeur par défaut de l'option autoSelectFamily peut être modifiée au moment de l'exécution à l'aide de setDefaultAutoSelectFamily ou via l'option de ligne de commande --enable-network-family-autoselection.
v20.0.0, v18.18.0La valeur par défaut de l'option autoSelectFamily est désormais true. L'indicateur CLI --enable-network-family-autoselection a été renommé en --network-family-autoselection. L'ancien nom est désormais un alias, mais il est déconseillé.
v19.3.0, v18.13.0Ajout de l'option autoSelectFamily.
v17.7.0, v16.15.0Les options noDelay, keepAlive et keepAliveInitialDelay sont désormais prises en charge.
v6.0.0L'option hints a désormais la valeur par défaut 0 dans tous les cas. Auparavant, en l'absence de l'option family, elle était par défaut à `dns.ADDRCONFIG
v5.11.0L'option hints est désormais prise en charge.
v0.1.90Ajoutée dans : v0.1.90

Amorce une connexion sur un socket donné. Normalement, cette méthode n'est pas nécessaire, le socket doit être créé et ouvert avec net.createConnection(). N'utilisez cette méthode que lors de l'implémentation d'un Socket personnalisé.

Pour les connexions TCP, les options disponibles sont les suivantes :

  • autoSelectFamily <booléen> : S'il est défini sur true, il active un algorithme d'autodétection de la famille qui implémente de manière souple la section 5 de RFC 8305. L'option all transmise à lookup est définie sur true et les sockets tentent de se connecter à toutes les adresses IPv6 et IPv4 obtenues, dans l'ordre, jusqu'à ce qu'une connexion soit établie. La première adresse AAAA renvoyée est essayée en premier, puis la première adresse A renvoyée, puis la deuxième adresse AAAA renvoyée et ainsi de suite. Chaque tentative de connexion (sauf la dernière) reçoit le délai spécifié par l'option autoSelectFamilyAttemptTimeout avant d'expirer et d'essayer l'adresse suivante. Ignoré si l'option family n'est pas 0 ou si localAddress est définie. Les erreurs de connexion ne sont pas émises si au moins une connexion réussit. Si toutes les tentatives de connexion échouent, une seule AggregateError avec toutes les tentatives échouées est émise. Par défaut : net.getDefaultAutoSelectFamily().
  • autoSelectFamilyAttemptTimeout <nombre> : Temps en millisecondes d'attente de la fin d'une tentative de connexion avant d'essayer l'adresse suivante lors de l'utilisation de l'option autoSelectFamily. Si elle est définie sur un entier positif inférieur à 10, la valeur 10 sera utilisée à la place. Par défaut : net.getDefaultAutoSelectFamilyAttemptTimeout().
  • family <nombre> : Version de la pile IP. Doit être 4, 6 ou 0. La valeur 0 indique que les adresses IPv4 et IPv6 sont autorisées. Par défaut : 0.
  • hints <nombre> Facultatif : indicateurs dns.lookup().
  • host <chaîne> Hôte auquel le socket doit se connecter. Par défaut : 'localhost'.
  • keepAlive <booléen> S'il est défini sur true, il active la fonctionnalité keep-alive sur le socket immédiatement après l'établissement de la connexion, de même que ce qui est fait dans socket.setKeepAlive(). Par défaut : false.
  • keepAliveInitialDelay <nombre> S'il est défini sur un nombre positif, il définit le délai initial avant l'envoi de la première sonde keepalive sur un socket inactif. Par défaut : 0.
  • localAddress <chaîne> Adresse locale à partir de laquelle le socket doit se connecter.
  • localPort <nombre> Port local à partir duquel le socket doit se connecter.
  • lookup <Fonction> Fonction de recherche personnalisée. Par défaut : dns.lookup().
  • noDelay <booléen> S'il est défini sur true, il désactive l'utilisation de l'algorithme de Nagle immédiatement après l'établissement du socket. Par défaut : false.
  • port <nombre> Requis. Port auquel le socket doit se connecter.
  • blockList <net.BlockList> blockList peut être utilisé pour désactiver l'accès sortant à des adresses IP, des plages d'adresses IP ou des sous-réseaux IP spécifiques.

Pour les connexions IPC, les options disponibles sont les suivantes :

socket.connect(path[, connectListener])

Initie une connexion IPC sur le socket donné.

Alias de socket.connect(options[, connectListener]) appelé avec { path: path } comme options.

socket.connect(port[, host][, connectListener])

Ajouté dans : v0.1.90

Initie une connexion TCP sur le socket donné.

Alias de socket.connect(options[, connectListener]) appelé avec {port: port, host: host} comme options.

socket.connecting

Ajouté dans : v6.1.0

Si true, socket.connect(options[, connectListener]) a été appelé et n'est pas encore terminé. Il restera true jusqu'à ce que le socket soit connecté, puis il sera défini sur false et l'événement 'connect' sera émis. Notez que le rappel socket.connect(options[, connectListener]) est un listener pour l'événement 'connect'.

socket.destroy([error])

Ajouté dans : v0.1.90

S'assure qu'il n'y a plus d'activité d'E/S sur ce socket. Détruit le flux et ferme la connexion.

Voir writable.destroy() pour plus de détails.

socket.destroyed

  • <boolean> Indique si la connexion est détruite ou non. Une fois qu'une connexion est détruite, plus aucune donnée ne peut être transférée en l'utilisant.

Voir writable.destroyed pour plus de détails.

socket.destroySoon()

Ajouté dans : v0.3.4

Détruit le socket après que toutes les données ont été écrites. Si l'événement 'finish' a déjà été émis, le socket est détruit immédiatement. Si le socket est toujours inscriptible, il appelle implicitement socket.end().

socket.end([data[, encoding]][, callback])

Ajouté dans : v0.1.90

Ferme le socket à moitié. C'est-à-dire qu'il envoie un paquet FIN. Il est possible que le serveur envoie encore des données.

Voir writable.end() pour plus de détails.

socket.localAddress

Ajouté dans : v0.9.6

La représentation sous forme de chaîne de l'adresse IP locale sur laquelle le client distant se connecte. Par exemple, dans un serveur écoutant sur '0.0.0.0', si un client se connecte sur '192.168.1.1', la valeur de socket.localAddress serait '192.168.1.1'.

socket.localPort

Ajouté dans : v0.9.6

La représentation numérique du port local. Par exemple, 80 ou 21.

socket.localFamily

Ajouté dans : v18.8.0, v16.18.0

La représentation sous forme de chaîne de la famille d'adresses IP locales. 'IPv4' ou 'IPv6'.

socket.pause()

Interrompt la lecture des données. Autrement dit, les événements 'data' ne seront pas émis. Utile pour ralentir un téléversement.

socket.pending

Ajouté dans : v11.2.0, v10.16.0

Cette valeur est true si le socket n'est pas encore connecté, soit parce que .connect() n'a pas encore été appelé, soit parce qu'il est toujours en cours de connexion (voir socket.connecting).

socket.ref()

Ajouté dans : v0.9.1

Contraire de unref(), l'appel de ref() sur un socket précédemment unref ne permettra pas au programme de se terminer si c'est le seul socket restant (le comportement par défaut). Si le socket est ref, l'appel de ref à nouveau n'aura aucun effet.

socket.remoteAddress

Ajouté dans : v0.5.10

La représentation sous forme de chaîne de l'adresse IP distante. Par exemple, '74.125.127.100' ou '2001:4860:a005::68'. La valeur peut être undefined si le socket est détruit (par exemple, si le client s'est déconnecté).

socket.remoteFamily

Ajouté dans : v0.11.14

La représentation sous forme de chaîne de la famille d'adresses IP distantes. 'IPv4' ou 'IPv6'. La valeur peut être undefined si le socket est détruit (par exemple, si le client s'est déconnecté).

socket.remotePort

Ajouté dans : v0.5.10

La représentation numérique du port distant. Par exemple, 80 ou 21. La valeur peut être undefined si le socket est détruit (par exemple, si le client s'est déconnecté).

socket.resetAndDestroy()

Ajouté dans : v18.3.0, v16.17.0

Ferme la connexion TCP en envoyant un paquet RST et détruit le flux. Si ce socket TCP est en état de connexion, il enverra un paquet RST et détruira ce socket TCP une fois qu'il sera connecté. Sinon, il appellera socket.destroy avec une erreur ERR_SOCKET_CLOSED. S'il ne s'agit pas d'un socket TCP (par exemple, un pipe), l'appel de cette méthode lèvera immédiatement une erreur ERR_INVALID_HANDLE_TYPE.

socket.resume()

Reprend la lecture après un appel à socket.pause().

socket.setEncoding([encoding])

Ajouté dans : v0.1.90

Définit l'encodage du socket en tant que Flux Lisible. Voir readable.setEncoding() pour plus d'informations.

socket.setKeepAlive([enable][, initialDelay])

[Historique]

VersionModifications
v13.12.0, v12.17.0De nouvelles valeurs par défaut pour les options de socket TCP_KEEPCNT et TCP_KEEPINTVL ont été ajoutées.
v0.1.92Ajouté dans : v0.1.92

Active/désactive la fonctionnalité keep-alive, et définit éventuellement le délai initial avant l'envoi de la première sonde keepalive sur un socket inactif.

Définissez initialDelay (en millisecondes) pour définir le délai entre le dernier paquet de données reçu et la première sonde keepalive. Définir 0 pour initialDelay laissera la valeur inchangée par rapport au paramètre par défaut (ou précédent).

L'activation de la fonctionnalité keep-alive définira les options de socket suivantes :

  • SO_KEEPALIVE=1
  • TCP_KEEPIDLE=initialDelay
  • TCP_KEEPCNT=10
  • TCP_KEEPINTVL=1

socket.setNoDelay([noDelay])

Ajouté dans : v0.1.90

Active/désactive l'utilisation de l'algorithme de Nagle.

Lorsqu'une connexion TCP est créée, l'algorithme de Nagle est activé.

L'algorithme de Nagle retarde les données avant qu'elles ne soient envoyées via le réseau. Il tente d'optimiser le débit au détriment de la latence.

Passer true pour noDelay ou ne pas passer d'argument désactivera l'algorithme de Nagle pour le socket. Passer false pour noDelay activera l'algorithme de Nagle.

socket.setTimeout(timeout[, callback])

[Historique]

VersionModifications
v18.0.0Le fait de passer un rappel invalide à l'argument callback génère maintenant ERR_INVALID_ARG_TYPE au lieu de ERR_INVALID_CALLBACK.
v0.1.90Ajouté dans : v0.1.90

Définit le socket pour qu'il expire après timeout millisecondes d'inactivité sur le socket. Par défaut, net.Socket n'a pas de délai d'attente.

Lorsqu'un délai d'inactivité est déclenché, le socket recevra un événement 'timeout' mais la connexion ne sera pas interrompue. L'utilisateur doit appeler manuellement socket.end() ou socket.destroy() pour mettre fin à la connexion.

js
socket.setTimeout(3000)
socket.on('timeout', () => {
  console.log('socket timeout')
  socket.end()
})

Si timeout est 0, le délai d'attente d'inactivité existant est désactivé.

Le paramètre facultatif callback sera ajouté en tant qu'écouteur unique pour l'événement 'timeout'.

socket.timeout

Ajouté dans : v10.7.0

Le délai d'attente du socket en millisecondes tel que défini par socket.setTimeout(). Il est undefined si aucun délai d'attente n'a été défini.

socket.unref()

Ajouté dans : v0.9.1

Appeler unref() sur un socket permettra au programme de se terminer si c'est le seul socket actif dans le système d'événements. Si le socket est déjà unrefé, appeler unref() à nouveau n'aura aucun effet.

socket.write(data[, encoding][, callback])

Ajouté dans : v0.1.90

Envoie des données sur le socket. Le deuxième paramètre spécifie l'encodage dans le cas d'une chaîne de caractères. La valeur par défaut est l'encodage UTF8.

Retourne true si toutes les données ont été vidées avec succès dans le tampon du noyau. Retourne false si toutes ou une partie des données ont été mises en file d'attente dans la mémoire utilisateur. L'événement 'drain' sera émis lorsque le tampon sera à nouveau libre.

Le paramètre callback facultatif sera exécuté lorsque les données seront finalement écrites, ce qui peut ne pas être immédiat.

Voir la méthode write() du flux Writable pour plus d'informations.

socket.readyState

Ajouté dans : v0.5.0

Cette propriété représente l'état de la connexion sous forme de chaîne de caractères.

  • Si le flux est en cours de connexion, socket.readyState est opening.
  • Si le flux est lisible et accessible en écriture, il est open.
  • Si le flux est lisible et non accessible en écriture, il est readOnly.
  • Si le flux n'est pas lisible et est accessible en écriture, il est writeOnly.

net.connect()

Alias de net.createConnection().

Signatures possibles :

net.connect(options[, connectListener])

Ajouté dans : v0.7.0

Alias de net.createConnection(options[, connectListener]).

net.connect(path[, connectListener])

Ajouté dans : v0.1.90

Alias de net.createConnection(path[, connectListener]).

net.connect(port[, host][, connectListener])

Ajouté dans : v0.1.90

Alias de net.createConnection(port[, host][, connectListener]).

net.createConnection()

Une fonction usine, qui crée un nouveau net.Socket, initie immédiatement la connexion avec socket.connect(), puis renvoie le net.Socket qui démarre la connexion.

Lorsque la connexion est établie, un événement 'connect' est émis sur le socket renvoyé. Le dernier paramètre connectListener, s'il est fourni, sera ajouté comme écouteur pour l'événement 'connect' une seule fois.

Signatures possibles :

La fonction net.connect() est un alias de cette fonction.

net.createConnection(options[, connectListener])

Ajouté dans : v0.1.90

Pour les options disponibles, consultez new net.Socket([options]) et socket.connect(options[, connectListener]).

Options supplémentaires :

Voici un exemple de client du serveur d'écho décrit dans la section net.createServer() :

js
import net from 'node:net'
const client = net.createConnection({ port: 8124 }, () => {
  // Écouteur 'connect'.
  console.log('connecté au serveur !')
  client.write('monde !\r\n')
})
client.on('data', data => {
  console.log(data.toString())
  client.end()
})
client.on('end', () => {
  console.log('déconnecté du serveur')
})
js
const net = require('node:net')
const client = net.createConnection({ port: 8124 }, () => {
  // Écouteur 'connect'.
  console.log('connecté au serveur !')
  client.write('monde !\r\n')
})
client.on('data', data => {
  console.log(data.toString())
  client.end()
})
client.on('end', () => {
  console.log('déconnecté du serveur')
})

Pour se connecter sur le socket /tmp/echo.sock :

js
const client = net.createConnection({ path: '/tmp/echo.sock' })

Voici un exemple de client utilisant l'option port et onread. Dans ce cas, l'option onread ne sera utilisée que pour appeler new net.Socket([options]) et l'option port sera utilisée pour appeler socket.connect(options[, connectListener]).

js
import net from 'node:net'
import { Buffer } from 'node:buffer'
net.createConnection({
  port: 8124,
  onread: {
    // Réutilise un Buffer de 4 kio pour chaque lecture du socket.
    buffer: Buffer.alloc(4 * 1024),
    callback: function (nread, buf) {
      // Les données reçues sont disponibles dans `buf` de 0 à `nread`.
      console.log(buf.toString('utf8', 0, nread))
    },
  },
})
js
const net = require('node:net')
net.createConnection({
  port: 8124,
  onread: {
    // Réutilise un Buffer de 4 kio pour chaque lecture du socket.
    buffer: Buffer.alloc(4 * 1024),
    callback: function (nread, buf) {
      // Les données reçues sont disponibles dans `buf` de 0 à `nread`.
      console.log(buf.toString('utf8', 0, nread))
    },
  },
})

net.createConnection(path[, connectListener])

Ajouté dans : v0.1.90

Initie une connexion IPC.

Cette fonction crée un nouveau net.Socket avec toutes les options définies par défaut, initie immédiatement la connexion avec socket.connect(path[, connectListener]), puis retourne le net.Socket qui démarre la connexion.

net.createConnection(port[, host][, connectListener])

Ajouté dans : v0.1.90

Initie une connexion TCP.

Cette fonction crée un nouveau net.Socket avec toutes les options définies par défaut, initie immédiatement la connexion avec socket.connect(port[, host][, connectListener]), puis retourne le net.Socket qui démarre la connexion.

net.createServer([options][, connectionListener])

[Historique]

VersionModifications
v20.1.0, v18.17.0L'option highWaterMark est désormais prise en charge.
v17.7.0, v16.15.0Les options noDelay, keepAlive et keepAliveInitialDelay sont désormais prises en charge.
v0.5.0Ajoutée dans : v0.5.0
  • options <Object>

    • allowHalfOpen <boolean> Si la valeur est false, le socket terminera automatiquement le côté inscriptible lorsque le côté lisible se terminera. Par défaut: false.
    • highWaterMark <number> Remplace éventuellement tous les readableHighWaterMark et writableHighWaterMark de net.Socket. Par défaut : Voir stream.getDefaultHighWaterMark().
    • keepAlive <boolean> Si la valeur est true, elle active la fonctionnalité keep-alive sur le socket immédiatement après la réception d'une nouvelle connexion entrante, de la même manière que ce qui est fait dans socket.setKeepAlive(). Par défaut: false.
    • keepAliveInitialDelay <number> Si elle est définie sur un nombre positif, elle définit le délai initial avant l'envoi de la première sonde keepalive sur un socket inactif. Par défaut: 0.
    • noDelay <boolean> Si la valeur est true, elle désactive l'utilisation de l'algorithme de Nagle immédiatement après la réception d'une nouvelle connexion entrante. Par défaut: false.
    • pauseOnConnect <boolean> Indique si le socket doit être mis en pause lors des connexions entrantes. Par défaut: false.
    • blockList <net.BlockList> blockList peut être utilisé pour désactiver l'accès entrant à des adresses IP, des plages d'adresses IP ou des sous-réseaux IP spécifiques. Cela ne fonctionne pas si le serveur se trouve derrière un proxy inverse, un NAT, etc., car l'adresse vérifiée par rapport à la liste de blocage est l'adresse du proxy ou celle spécifiée par le NAT.
  • connectionListener <Function> Définie automatiquement comme écouteur de l'événement 'connection'.

  • Renvoie : <net.Server>

Crée un nouveau serveur TCP ou IPC.

Si allowHalfOpen est défini sur true, lorsque l'autre extrémité du socket signale la fin de la transmission, le serveur ne renvoie la fin de la transmission que lorsque socket.end() est explicitement appelée. Par exemple, dans le contexte de TCP, lorsqu'un paquet FIN est reçu, un paquet FIN n'est renvoyé que lorsque socket.end() est explicitement appelé. Jusque-là, la connexion est à moitié fermée (non lisible mais toujours inscriptible). Voir l'événement 'end' et le RFC 1122 (section 4.2.2.13) pour plus d'informations.

Si pauseOnConnect est défini sur true, le socket associé à chaque connexion entrante sera mis en pause et aucune donnée ne sera lue à partir de son descripteur. Cela permet de passer des connexions entre les processus sans qu'aucune donnée ne soit lue par le processus d'origine. Pour commencer à lire les données d'un socket mis en pause, appelez socket.resume().

Le serveur peut être un serveur TCP ou un serveur IPC, selon ce qu'il listen().

Voici un exemple de serveur d'écho TCP qui écoute les connexions sur le port 8124 :

js
import net from 'node:net'
const server = net.createServer(c => {
  // Listener 'connection'.
  console.log('client connecté')
  c.on('end', () => {
    console.log('client déconnecté')
  })
  c.write('hello\r\n')
  c.pipe(c)
})
server.on('error', err => {
  throw err
})
server.listen(8124, () => {
  console.log('serveur lié')
})
js
const net = require('node:net')
const server = net.createServer(c => {
  // Listener 'connection'.
  console.log('client connecté')
  c.on('end', () => {
    console.log('client déconnecté')
  })
  c.write('hello\r\n')
  c.pipe(c)
})
server.on('error', err => {
  throw err
})
server.listen(8124, () => {
  console.log('serveur lié')
})

Testez cela en utilisant telnet :

bash
telnet localhost 8124

Pour écouter sur le socket /tmp/echo.sock :

js
server.listen('/tmp/echo.sock', () => {
  console.log('serveur lié')
})

Utilisez nc pour vous connecter à un serveur de socket de domaine Unix :

bash
nc -U /tmp/echo.sock

net.getDefaultAutoSelectFamily()

Ajouté dans : v19.4.0

Récupère la valeur par défaut actuelle de l'option autoSelectFamily de socket.connect(options). La valeur par défaut initiale est true, sauf si l'option de ligne de commande --no-network-family-autoselection est fournie.

  • Retourne : <boolean> La valeur par défaut actuelle de l'option autoSelectFamily.

net.setDefaultAutoSelectFamily(value)

Ajouté dans : v19.4.0

Définit la valeur par défaut de l'option autoSelectFamily de socket.connect(options).

  • value <boolean> La nouvelle valeur par défaut. La valeur par défaut initiale est true, sauf si l'option de ligne de commande --no-network-family-autoselection est fournie.

net.getDefaultAutoSelectFamilyAttemptTimeout()

Ajouté dans : v19.8.0, v18.18.0

Récupère la valeur par défaut actuelle de l'option autoSelectFamilyAttemptTimeout de socket.connect(options). La valeur par défaut initiale est 250 ou la valeur spécifiée via l'option de ligne de commande --network-family-autoselection-attempt-timeout.

  • Retourne : <number> La valeur par défaut actuelle de l'option autoSelectFamilyAttemptTimeout.

net.setDefaultAutoSelectFamilyAttemptTimeout(value)

Ajouté dans : v19.8.0, v18.18.0

Définit la valeur par défaut de l'option autoSelectFamilyAttemptTimeout de socket.connect(options).

  • value <number> La nouvelle valeur par défaut, qui doit être un nombre positif. Si le nombre est inférieur à 10, la valeur 10 est utilisée à la place. La valeur par défaut initiale est 250 ou la valeur spécifiée via l'option de ligne de commande --network-family-autoselection-attempt-timeout.

net.isIP(input)

Ajouté dans : v0.3.0

Renvoie 6 si input est une adresse IPv6. Renvoie 4 si input est une adresse IPv4 en notation décimale pointée sans zéros non significatifs. Sinon, renvoie 0.

js
net.isIP('::1') // renvoie 6
net.isIP('127.0.0.1') // renvoie 4
net.isIP('127.000.000.001') // renvoie 0
net.isIP('127.0.0.1/24') // renvoie 0
net.isIP('fhqwhgads') // renvoie 0

net.isIPv4(input)

Ajouté dans : v0.3.0

Renvoie true si input est une adresse IPv4 en notation décimale pointée sans zéros non significatifs. Sinon, renvoie false.

js
net.isIPv4('127.0.0.1') // renvoie true
net.isIPv4('127.000.000.001') // renvoie false
net.isIPv4('127.0.0.1/24') // renvoie false
net.isIPv4('fhqwhgads') // renvoie false

net.isIPv6(input)

Ajouté dans : v0.3.0

Renvoie true si input est une adresse IPv6. Sinon, renvoie false.

js
net.isIPv6('::1') // renvoie true
net.isIPv6('fhqwhgads') // renvoie false