{"id":24,"date":"2008-09-07T17:53:00","date_gmt":"2008-09-07T17:53:00","guid":{"rendered":"http:\/\/www.olivierdoucet.info\/wordpress\/?p=24"},"modified":"2008-09-07T17:53:00","modified_gmt":"2008-09-07T17:53:00","slug":"attention-a-ladresse-ip-dun-visiteur","status":"publish","type":"post","link":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/","title":{"rendered":"Attention \u00e0 l&rsquo;adresse IP d&rsquo;un visiteur"},"content":{"rendered":"<p>Amis webmasters \/ \u00e9diteurs de sites Internet, je suis persuad\u00e9 que vous r\u00e9cup\u00e9rez \u00e0 un moment ou \u00e0 un autre l&rsquo;adresse IP du visiteur (\u00e0 des fins l\u00e9gales entre autre, en cas de soucis avec un membre ou du contenu). Mais comment faites vous ? Dans le site dont je m&rsquo;occupe, nous avons une routine pour cela. Nous ne l&rsquo;avions pas cod\u00e9, et je ne m&rsquo;y \u00e9tais jamais interess\u00e9 de pr\u00e8s. Il a fallu un petit \u00e9v\u00e8nement pour que je relise le code attentivement.<br \/>\n<!--more--><br \/>\nNous avons eu un membre \u00ab\u00a0bizarre\u00a0\u00bb sur le site. Quel ne fut pas ma surprise en voyant l&rsquo;adresse IP enregistr\u00e9e par le syst\u00e8me : 10.0.1.2. Comment avait pu faire ce visiteur pour \u00ab\u00a0communiquer\u00a0\u00bb cette adresse IP ? Normalement impossible. Un coup d&rsquo;oeil rapide \u00e0 la fonction utilis\u00e9e m&rsquo;a permis de comprendre tout de suite : \/\/\/ if (isset($_SERVER[&lsquo;X_FORWARDED_FOR&rsquo;])) {    $ip = $_SERVER[&lsquo;X_FORWARED_FOR&rsquo;]; } else    $ip = $_SERVER[&lsquo;REMOTE_ADDR&rsquo;]; \/\/\/ Le code part d&rsquo;un bon sentiment : si on a affaire \u00e0 un proxy, et qu&rsquo;on a un header donnant l&rsquo;adresse r\u00e9elle, alors on enregistre cette derni\u00e8re. Sauf que ce header est falsifiable tr\u00e8s facilement. J&rsquo;aurais aussi bien pu mettre une IP du FBI dedans, ou du texte. Seul REMOTE_ADDR peut \u00eatre consid\u00e9r\u00e9 comme s\u00fbr. La solution miracle n&rsquo;existe pas. Depuis ce moment, j&rsquo;enregistre donc les deux champs. [UPDATE] J&rsquo;en profite pour pr\u00e9ciser sur le m\u00eame sujet : ne stockez pas\/plus d&rsquo;adresses IP dans un champ num\u00e9rique SQL avec ip2long(). Cette fonction ne marche pas avec les adresses IP en ipv6, et cela va devenir de plus en plus courant.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Amis webmasters \/ \u00e9diteurs de sites Internet, je suis persuad\u00e9 que vous r\u00e9cup\u00e9rez \u00e0 un moment ou \u00e0 un autre l&rsquo;adresse IP du visiteur (\u00e0 des fins l\u00e9gales entre autre, en cas de soucis avec un membre ou du contenu). Mais comment faites vous ? Dans le site dont je m&rsquo;occupe, nous avons une routine pour cela. Nous ne l&rsquo;avions pas cod\u00e9, et je ne m&rsquo;y \u00e9tais jamais interess\u00e9 de pr\u00e8s. Il a fallu un petit \u00e9v\u00e8nement pour que je relise le code attentivement.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-24","post","type-post","status-publish","format-standard","hentry","category-informatique"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Attention \u00e0 l&#039;adresse IP d&#039;un visiteur - My thoughts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Attention \u00e0 l&#039;adresse IP d&#039;un visiteur - My thoughts\" \/>\n<meta property=\"og:description\" content=\"Amis webmasters \/ \u00e9diteurs de sites Internet, je suis persuad\u00e9 que vous r\u00e9cup\u00e9rez \u00e0 un moment ou \u00e0 un autre l&#039;adresse IP du visiteur (\u00e0 des fins l\u00e9gales entre autre, en cas de soucis avec un membre ou du contenu). Mais comment faites vous ? Dans le site dont je m&#039;occupe, nous avons une routine pour cela. Nous ne l&#039;avions pas cod\u00e9, et je ne m&#039;y \u00e9tais jamais interess\u00e9 de pr\u00e8s. Il a fallu un petit \u00e9v\u00e8nement pour que je relise le code attentivement.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/\" \/>\n<meta property=\"og:site_name\" content=\"My thoughts\" \/>\n<meta property=\"article:published_time\" content=\"2008-09-07T17:53:00+00:00\" \/>\n<meta name=\"author\" content=\"olivier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@odoucet\" \/>\n<meta name=\"twitter:site\" content=\"@odoucet\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"olivier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/\",\"name\":\"Attention \u00e0 l'adresse IP d'un visiteur - My thoughts\",\"isPartOf\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\"},\"datePublished\":\"2008-09-07T17:53:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.olivierdoucet.info\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Attention \u00e0 l&rsquo;adresse IP d&rsquo;un visiteur\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/\",\"name\":\"My thoughts\",\"description\":\"En fran\u00e7ais and in english :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\",\"name\":\"olivier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"caption\":\"olivier\"},\"sameAs\":[\"http:\/\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Attention \u00e0 l'adresse IP d'un visiteur - My thoughts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/","og_locale":"fr_FR","og_type":"article","og_title":"Attention \u00e0 l'adresse IP d'un visiteur - My thoughts","og_description":"Amis webmasters \/ \u00e9diteurs de sites Internet, je suis persuad\u00e9 que vous r\u00e9cup\u00e9rez \u00e0 un moment ou \u00e0 un autre l'adresse IP du visiteur (\u00e0 des fins l\u00e9gales entre autre, en cas de soucis avec un membre ou du contenu). Mais comment faites vous ? Dans le site dont je m'occupe, nous avons une routine pour cela. Nous ne l'avions pas cod\u00e9, et je ne m'y \u00e9tais jamais interess\u00e9 de pr\u00e8s. Il a fallu un petit \u00e9v\u00e8nement pour que je relise le code attentivement.","og_url":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/","og_site_name":"My thoughts","article_published_time":"2008-09-07T17:53:00+00:00","author":"olivier","twitter_card":"summary_large_image","twitter_creator":"@odoucet","twitter_site":"@odoucet","twitter_misc":{"\u00c9crit par":"olivier","Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/","url":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/","name":"Attention \u00e0 l'adresse IP d'un visiteur - My thoughts","isPartOf":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#website"},"datePublished":"2008-09-07T17:53:00+00:00","author":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96"},"breadcrumb":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.olivierdoucet.info\/blog\/2008\/09\/07\/attention-a-ladresse-ip-dun-visiteur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.olivierdoucet.info\/blog\/"},{"@type":"ListItem","position":2,"name":"Attention \u00e0 l&rsquo;adresse IP d&rsquo;un visiteur"}]},{"@type":"WebSite","@id":"https:\/\/www.olivierdoucet.info\/blog\/#website","url":"https:\/\/www.olivierdoucet.info\/blog\/","name":"My thoughts","description":"En fran\u00e7ais and in english :)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96","name":"olivier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","caption":"olivier"},"sameAs":["http:\/\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":0,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/24\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/media?parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/categories?post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/tags?post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}