gethostbyaddr () communique avec l'extérieur

【 Aperçu 】

Sur un système avec PHP, l'affichage du navigateur s'affiche pour une raison quelconque Il y a eu un phénomène qui est devenu lourd.

Dans mes recherches, quand je l'ai regardé avec la commande linux netstat, Il y avait beaucoup de communication avec le port 53.

Quoi? J'ai pensé, et après avoir étudié diverses choses, J'ai trouvé que cela était causé par gethostbyaddr ().

[Cause]

Tout d'abord, gethostbyaddr () est innocent. Un problème est survenu concernant la façon d'appeler.

C'est une source PHP, elle est mal écrite, Il y avait un endroit où je bouclais en vain (beaucoup).

Parce que j'appelais gethostbyaddr () dans cette boucle Je recevais beaucoup de demandes DNS du serveur.

Après avoir fait un correctif pour réduire le nombre d'appels La charge sur le serveur (réseau) est réduite, L'affichage du navigateur est devenu plus clair.

[En premier lieu]

Gethostbyaddr () communique-t-il avec le monde extérieur? Vous avez peut-être pensé, mais si vous me demandez Parce que le nom d'hôte est obtenu à partir de l'adresse IP Vous faites un tirage inverse sur le DNS, non? Je peux imaginer.

(Vous devriez vraiment regarder la source de gethostbyaddr () elle-même, Je n'ai pas de telles compétences et je suis désolé, mais je vous laisse le soin. )

Par exemple, si c'est mb_send_mail (), il enverra un e-mail, Vous penserez que c'est mauvais de boucler.

Mais gethostbyaddr () communique dans les coulisses Je ne le remarque pas facilement. Vous pourriez penser que ce n'est qu'une fonction de conversion. (Surtout si vous êtes une personne qui n'est pas familière avec les serveurs et l'infrastructure.)

[Résumé]

Avant de modifier la source PHP, utilisez le serveur de noms de la destination de communication C'est comme avoir une attaque Dos. (Je suis désolé.)

Comme le nombre de fois que vous appelez gethostbyaddr (), N'appelez pas à plusieurs reprises avec la même adresse IP Je pense qu'il est également nécessaire de trouver des moyens de mettre en cache les résultats.

Cependant, il n'y a aucun problème à l'utiliser normalement. Parce que c'était incroyablement en boucle Cela a simplement augmenté la charge du réseau.

Recommended Posts

gethostbyaddr () communique avec l'extérieur
Insérez le débogueur avec le nez
Tuez le processus avec sudo kill -9
Devinez le mot de passe avec klee
Gratter la moyenne du Nikkei avec le dramaturge-python
Vérifiez le code avec flake8
Calibrer le modèle avec PyCaret
Appelez l'API avec python3.
Décrypter le code QR avec CNN
Extraire le fichier xz avec python
Extraire la valeur maximale avec les pandas.
Utilisez la fonction de prévisualisation avec aws-cli
L'espace est dangereux avec PyEphem
Paver la route avec l'optimisation des combinaisons
Exécutez l'application avec Flask + Heroku
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Trouvez la distance d'édition (distance de Levenshtein) avec python
Explorez le labyrinthe avec l'apprentissage augmenté
Trouver les erreurs les plus simples avec OpenCV
Accédez à l'API Etherpad-lite avec Python
Installer le plug-in Python avec Netbeans 8.0.2
Graphique d'appel de sortie avec PyCallGraph
Installez le fichier de données avec setup.py
Déboguer le script avec l'éditeur Sakura
J'ai aimé le tweet avec python. ..
Maîtriser le type avec Python [compatible Python 3.9]
Frappez la commande supérieure avec htop
Essayez de brouiller l'image avec opencv2
Validez le modèle d'entraînement avec Pylearn2
Ouvrir le fichier avec l'application par défaut
Préparez l'environnement de développement avec anyenv