{"id":31946,"date":"2024-11-07T15:46:45","date_gmt":"2024-11-07T15:46:45","guid":{"rendered":"https:\/\/floppydata.com\/verificateur-de-proxy\/"},"modified":"2025-09-19T08:44:04","modified_gmt":"2025-09-19T08:44:04","slug":"free-proxy-checker","status":"publish","type":"page","link":"https:\/\/floppydata.com\/fr\/free-proxy-checker\/","title":{"rendered":"V\u00e9rificateur de proxy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"31946\" class=\"elementor elementor-31946 elementor-929\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9a269b9 e-flex e-con-boxed e-con e-parent\" data-id=\"9a269b9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4171500 elementor-widget elementor-widget-heading\" data-id=\"4171500\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">V\u00e9rificateur de proxy<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8a4872 elementor-widget elementor-widget-html\" data-id=\"b8a4872\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"proxy-form\">\r\n  <div class=\"proxy-form__fields\">\r\n    <label><span>Type<\/span><select name=\"type\">\r\n        <option>HTTP<\/option>\r\n        <option selected>HTTPS<\/option>\r\n        <option>SOCKS4<\/option>\r\n        <option>SOCKS5<\/option>\r\n      <\/select> <\/label>\r\n    <label><span>IP<\/span><input name=\"ip\" placeholder=\"127.0.0.1\"><\/label>\r\n    <label><span>Port<\/span><input name=\"port\" placeholder=\"22\"><\/label>\r\n    <label><span>Utilisateur<\/span><input name=\"user\" placeholder=\"vide&gt;\"><\/label>\r\n    <label><span>Mot de passe<\/span><input name=\"password\" type=\"password\" placeholder=\"vide&gt;\"><\/label>\r\n  <\/div>\r\n  <div class=\"proxy-form__textarea form-hidden\">\r\n    <label><span id=\"aboveTextareaText\">Ins\u00e9rez ici la liste des mandataires : <\/span><span class=\"invalid-format\">Format de donn\u00e9es invalide<\/span><textarea name=\"list\" placeholder=\"Formats de cha\u00eenes pris en charge : type:\/\/user:password@ip:port ou ip:port:user(optional):password(optional)\"><\/textarea>\r\n    <\/label>\r\n  <\/div>\r\n  <div class=\"proxy-form__controls\">\r\n    <button class=\"controls-swap\">Texte brut<\/button>\r\n    <button class=\"controls-add\">Ajouter \u00e0 la file d'attente<\/button>\r\n    <button class=\"controls-check\">V\u00e9rifier le proxy<\/button>\r\n  <\/div>\r\n<\/div>\r\n<div class=\"proxy-results\">\r\n  <div class=\"proxy-results__header\">\r\n    <div class=\"header-title\">Liste de procurations<\/div>\r\n    <div class=\"header-result\">\r\n      <span class=\"header-result__checked\">V\u00e9rifi\u00e9 <span class=\"checked-done\">0<\/span> sur\r\n <span class=\"checked-all\">0<\/span><\/span>\r\n      <span class=\"header-result__available\">Disponible <span class=\"available-done\">0<\/span> sur\r\n <span class=\"available-all\">0<\/span><\/span>\r\n    <\/div>\r\n    <div class=\"header-filter\">\r\n      <button title=\"Filtre\" class=\"header-filter__expand\"><svg width=\"23\" height=\"20\" viewbox=\"0 0 23 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M0.173879 1.02235C0.468531 0.397334 1.09355 0 1.78553 0H21.0718C21.7638 0 22.3888 0.397334 22.6835 1.02235C22.9781 1.64737 22.8889 2.384 22.4513 2.91973L14.2859 12.8977V18.572C14.2859 19.1122 13.9823 19.6077 13.4957 19.8488C13.0091 20.0899 12.4332 20.0408 12.0001 19.7149L9.1429 17.572C8.78128 17.3041 8.57145 16.88 8.57145 16.4291V12.8977L0.401565 2.91527C-0.0314843 2.384 -0.125237 1.64291 0.173879 1.02235Z\" fill=\"#111827\"\/>\r\n<\/svg>\r\n<\/button>\r\n      <form class=\"header-filter__list\">\r\n        <input type=\"checkbox\" id=\"all\" name=\"filter\" value=\"all\" checked>\r\n        <label for=\"all\">Tous<\/label>\r\n        <input type=\"checkbox\" id=\"http\" name=\"filter\" value=\"http\">\r\n        <label for=\"http\">HTTP<\/label>\r\n        <input type=\"checkbox\" id=\"https\" name=\"filter\" value=\"https\">\r\n        <label for=\"https\">HTTPS<\/label>\r\n        <input type=\"checkbox\" id=\"socks4\" name=\"filter\" value=\"socks4\">\r\n        <label for=\"socks4\">SOCKS4<\/label>\r\n        <input type=\"checkbox\" id=\"socks5\" name=\"filter\" value=\"socks5\">\r\n        <label for=\"socks5\">SOCKS5<\/label>\r\n        <input type=\"checkbox\" id=\"unavailable\" name=\"filter\" value=\"unavailable\">\r\n        <label for=\"unavailable\">Indisponible<\/label>\r\n        <input type=\"checkbox\" id=\"pending\" name=\"filter\" value=\"pending\">\r\n        <label for=\"pending\">En attente<\/label>\r\n      <\/form>\r\n    <\/div>\r\n    <div class=\"header-actions\">\r\n      <button title=\"Remise \u00e0 z\u00e9ro\" class=\"header-actions__reset\"><svg width=\"21\" height=\"20\" viewbox=\"0 0 21 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M19.2618 8.57193H19.6412C20.2349 8.57193 20.7125 8.09432 20.7125 7.50065V1.78718C20.7125 1.3542 20.4536 0.9614 20.0518 0.796245C19.6501 0.63109 19.1904 0.720363 18.8824 1.02835L17.0255 2.88524C13.1153 -0.975826 6.81711 -0.962435 2.92927 2.92987C-0.976424 6.83557 -0.976424 13.165 2.92927 17.0707C6.83497 20.9764 13.1644 20.9764 17.0701 17.0707C17.6281 16.5128 17.6281 15.6066 17.0701 15.0487C16.5122 14.4907 15.606 14.4907 15.0481 15.0487C12.2583 17.8385 7.73663 17.8385 4.94684 15.0487C2.15706 12.2589 2.15706 7.73723 4.94684 4.94744C7.72324 2.17105 12.2092 2.15766 15.0035 4.90281L13.1689 6.74183C12.8609 7.04982 12.7716 7.50958 12.9368 7.91131C13.1019 8.31304 13.4947 8.57193 13.9277 8.57193H19.2618Z\" fill=\"#111827\"\/>\r\n<\/svg><\/button>\r\n      <button title=\"Clair\" class=\"header-actions__clear\"><svg width=\"18\" height=\"20\" viewbox=\"0 0 18 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M5.28125 0.691406L5 1.25H1.25C0.558594 1.25 0 1.80859 0 2.5C0 3.19141 0.558594 3.75 1.25 3.75H16.25C16.9414 3.75 17.5 3.19141 17.5 2.5C17.5 1.80859 16.9414 1.25 16.25 1.25H12.5L12.2187 0.691406C12.0078 0.265625 11.5742 0 11.1016 0H6.39844C5.92578 0 5.49219 0.265625 5.28125 0.691406ZM16.25 5H1.25L2.07813 18.2422C2.14063 19.2305 2.96094 20 3.94922 20H13.5508C14.5391 20 15.3594 19.2305 15.4219 18.2422L16.25 5Z\" fill=\"#111827\"\/>\r\n<\/svg><\/button>\r\n      <button title=\"Exportation\" class=\"header-actions__export\"><svg width=\"15\" height=\"20\" viewbox=\"0 0 15 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M2.5 0C1.12109 0 0 1.12109 0 2.5V17.5C0 18.8789 1.12109 20 2.5 20H12.5C13.8789 20 15 18.8789 15 17.5V6.25H10C9.30859 6.25 8.75 5.69141 8.75 5V0H2.5ZM10 0V5H15L10 0ZM8.4375 9.0625V13.0508L9.64844 11.8398C10.0156 11.4727 10.6094 11.4727 10.9727 11.8398C11.3359 12.207 11.3398 12.8008 10.9727 13.1641L8.16016 15.9766C7.79297 16.3437 7.19922 16.3437 6.83594 15.9766L4.02344 13.1641C3.65625 12.7969 3.65625 12.2031 4.02344 11.8398C4.39062 11.4766 4.98437 11.4727 5.34766 11.8398L6.55859 13.0508L6.5625 9.0625C6.5625 8.54297 6.98047 8.125 7.5 8.125C8.01953 8.125 8.4375 8.54297 8.4375 9.0625Z\" fill=\"#111827\"\/>\r\n<\/svg><\/button>\r\n      <div class=\"header-actions__export-list\">\r\n        <button class=\"export-list__action\">Exporter TXT<\/button>\r\n        <button class=\"export-list__action\">Exporter CSV<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"proxy-results__empty empty-visible\">La liste est vide<\/div>\r\n  <div class=\"proxy-results__table\">\r\n    <div class=\"table-header\">\r\n      <div>Adresse<\/div>\r\n      <div>Port<\/div>\r\n      <div>Utilisateur<\/div>\r\n      <div>Mot de passe<\/div>\r\n      <div>Type<\/div>\r\n      <div>Localisation<\/div>\r\n      <div>Statut<\/div>\r\n      <div>Actions<\/div>\r\n    <\/div>\r\n    <div class=\"table-content\"><\/div>\r\n  <\/div>\r\n  <div class=\"proxy-results__page\">\r\n    <button tilte=\"Previous page\" class=\"page-prev fas fa-chevron-left\"><\/button>\r\n    <div class=\"page-list\"><\/div>\r\n    <button tilte=\"Next page\" class=\"page-next fas fa-chevron-right\"><\/button>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a5a484c elementor-widget elementor-widget-html\" data-id=\"a5a484c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>document.addEventListener(\"DOMContentLoaded\", function load() {\r\n  if (!window.jQuery) return setTimeout(load, 50);\r\n\r\n\/\/ Proxy textarea error message  \r\n  const textarea = document.querySelector(\".proxy-form__textarea textarea\");\r\n    if (textarea) {\r\n        textarea.addEventListener(\"input\", () => {\r\n            const errorSpan = document.querySelector(\".invalid-format\");\r\n            if (errorSpan) {\r\n                errorSpan.style.display = \"none\";\r\n            }\r\n        });\r\n    }\r\n \r\n\/\/ Variables\r\n const ipReg = new RegExp(\r\n    \"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\"\r\n  );\r\n  const domainReg = new RegExp(\r\n    \"^(([a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\\\(\\\\),]|(?:%[0-9A-Fa-f][0-9A-Fa-f]))+)\"\r\n  );\r\n  const template = document.createElement(\"div\");\r\n  template.innerHTML = `\r\n        <div class=\"row-ip\"><\/div>\r\n        <div class=\"row-pt\"><\/div>\r\n        <div class=\"row-ur\"><\/div>\r\n        <div class=\"row-pw\"><\/div>\r\n        <div class=\"row-tp\"><\/div>\r\n        <div class=\"row-lc\"><\/div>\r\n        <div class=\"row-st status-0\"><\/div>\r\n        <div>\r\n            <button title=\"Reset\" class=\"row-reset\"><svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M19.2618 8.57193H19.6412C20.2349 8.57193 20.7125 8.09432 20.7125 7.50065V1.78718C20.7125 1.3542 20.4536 0.9614 20.0518 0.796245C19.6501 0.63109 19.1904 0.720363 18.8824 1.02835L17.0255 2.88524C13.1153 -0.975826 6.81711 -0.962435 2.92927 2.92987C-0.976424 6.83557 -0.976424 13.165 2.92927 17.0707C6.83497 20.9764 13.1644 20.9764 17.0701 17.0707C17.6281 16.5128 17.6281 15.6066 17.0701 15.0487C16.5122 14.4907 15.606 14.4907 15.0481 15.0487C12.2583 17.8385 7.73663 17.8385 4.94684 15.0487C2.15706 12.2589 2.15706 7.73723 4.94684 4.94744C7.72324 2.17105 12.2092 2.15766 15.0035 4.90281L13.1689 6.74183C12.8609 7.04982 12.7716 7.50958 12.9368 7.91131C13.1019 8.31304 13.4947 8.57193 13.9277 8.57193H19.2618Z\" fill=\"#111827\"\/>\r\n<\/svg><\/button>\r\n            <button title=\"Copy\" class=\"row-copy\"><svg width=\"18\" height=\"20\" viewBox=\"0 0 18 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M8.125 0H12.9727C13.4688 0 13.9453 0.199219 14.2969 0.550781L16.9492 3.20312C17.3008 3.55469 17.5 4.03125 17.5 4.52734V13.125C17.5 14.1602 16.6602 15 15.625 15H8.125C7.08984 15 6.25 14.1602 6.25 13.125V1.875C6.25 0.839844 7.08984 0 8.125 0ZM1.875 5H5V7.5H2.5V17.5H10V16.25H12.5V18.125C12.5 19.1602 11.6602 20 10.625 20H1.875C0.839844 20 0 19.1602 0 18.125V6.875C0 5.83984 0.839844 5 1.875 5Z\" fill=\"#111827\"\/>\r\n<\/svg><\/button>\r\n            <button title=\"Delete\" class=\"row-delete\"><svg width=\"18\" height=\"20\" viewBox=\"0 0 18 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<path d=\"M5.28125 0.691406L5 1.25H1.25C0.558594 1.25 0 1.80859 0 2.5C0 3.19141 0.558594 3.75 1.25 3.75H16.25C16.9414 3.75 17.5 3.19141 17.5 2.5C17.5 1.80859 16.9414 1.25 16.25 1.25H12.5L12.2187 0.691406C12.0078 0.265625 11.5742 0 11.1016 0H6.39844C5.92578 0 5.49219 0.265625 5.28125 0.691406ZM16.25 5H1.25L2.07813 18.2422C2.14063 19.2305 2.96094 20 3.94922 20H13.5508C14.5391 20 15.3594 19.2305 15.4219 18.2422L16.25 5Z\" fill=\"#111827\"\/>\r\n<\/svg><\/button>\r\n        <\/div>`;\r\n  const data = [];\r\n  const settings = {\r\n    filter: {\r\n      all: true,\r\n      http: false,\r\n      https: false,\r\n      socks4: false,\r\n      socks5: false,\r\n      unavailable: false,\r\n      pending: false,\r\n    },\r\n    page: 1,\r\n    input: \"form\",\r\n  };\r\n  const record = {\r\n    ip: \"\",\r\n    port: \"\",\r\n    user: \"\",\r\n    password: \"\",\r\n    location: \"\",\r\n    status: \"\",\r\n    type: \"\",\r\n    state: {\r\n      unavailable: false,\r\n      pending: true,\r\n      processing: false,\r\n      checked: false,\r\n    },\r\n    node: \"\",\r\n    copyNode() {\r\n       let proxyString = this.ip + \":\" + this.port;\r\n       if (this.type) proxyString = `${this.type}:\/\/${proxyString}`;\r\n       if (this.user) proxyString += `:${this.user}:${this.password}`;\r\n\r\n       navigator.clipboard.writeText(proxyString).then(() => {\r\n       }).catch(err => console.error(\"Cannot copy:\", err));\r\n    },\r\n    deleteNode() {\r\n      if (this.state.processing == false) data.splice(data.indexOf(this), 1);\r\n    },\r\n    resetNode() {\r\n      if (this.state.processing == false) {\r\n        this.status = \"Pending\";\r\n        this.location = \"\";\r\n        this.node.querySelector(\".row-st\").textContent = this.status;\r\n        this.node.querySelector(\".row-lc\").textContent = this.location;\r\n        this.node.querySelector(\".row-st\").className = `row-st status-0`;\r\n        this.state = Object.keys(this.state).reduce((a, k) => {\r\n          a[k] = false;\r\n          return a;\r\n        }, {});\r\n        this.state.pending = true;\r\n      \/\/  proxyChecking();\r\n      }\r\n    },\r\n  };\r\n\r\n\r\n\/\/ Code\r\n  jQuery(\".controls-swap\").on(\"click\", function swapInput() {\r\n    if (settings.input == \"form\") {\r\n      settings.input = \"field\";\r\n      jQuery(\".proxy-form__fields\").toggleClass(\"form-hidden\", true);\r\n      jQuery(\".proxy-form__textarea\").toggleClass(\"form-hidden\", false);\r\n      jQuery(\".controls-swap\").text(\"Input form\");\r\n    } else {\r\n      settings.input = \"form\";\r\n      jQuery(\".proxy-form__fields\").toggleClass(\"form-hidden\", false);\r\n      jQuery(\".proxy-form__textarea\").toggleClass(\"form-hidden\", true);\r\n      jQuery(\".controls-swap\").text(\"Plain text\");\r\n    }\r\n  });\r\njQuery(\".controls-add\").on(\"click\", function parseInput() {\r\nconst errorSpan = document.querySelector(\".invalid-format\");\r\n    if (errorSpan) {\r\n        errorSpan.style.display = \"none\";\r\n    }\r\n\r\n    function parseProxyString(proxyString) {\r\n    const ipRegex = \/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\/;\r\n    const domainRegex = \/^[a-zA-Z0-9.-]+$\/;\r\n    const portRegex = \/^[0-9]{1,5}$\/;\r\n\r\n    const result = {\r\n        type: null,\r\n        ip: null,\r\n        port: null,\r\n        username: null,\r\n        password: null,\r\n    };\r\n\r\n   let cleanedString = proxyString.replace(\/^(http|https|socks4|socks5):\\\/\\\/\/, (match) => {\r\n        result.type = match.slice(0, -3).toLowerCase();\r\n        return \"\";\r\n    });\r\n\r\n    \/\/ Check format `ip:port:user:password`\r\n    const parts = cleanedString.split(\":\");\r\n    if (parts.length === 4) {\r\n        const [ipOrHost, port, username, password] = parts;\r\n        if ((ipRegex.test(ipOrHost) || domainRegex.test(ipOrHost)) && portRegex.test(port)) {\r\n            result.ip = ipOrHost;\r\n            result.port = port;\r\n            result.username = username;\r\n            result.password = password;\r\n        }\r\n    } else if (parts.length === 2 || parts.length === 3) {\r\n        \/\/ Check format `ip:port` \u0438\u043b\u0438 `user:password@ip:port`\r\n        if (cleanedString.includes(\"@\")) {\r\n            const [auth, rest] = cleanedString.split(\"@\");\r\n            const [username, password] = auth.split(\":\");\r\n            const [ipOrHost, port] = rest.split(\":\");\r\n            if ((ipRegex.test(ipOrHost) || domainRegex.test(ipOrHost)) && portRegex.test(port)) {\r\n                result.ip = ipOrHost;\r\n                result.port = port;\r\n                result.username = username || null;\r\n                result.password = password || null;\r\n            }\r\n        } else {\r\n            const [ipOrHost, port] = parts;\r\n            if ((ipRegex.test(ipOrHost) || domainRegex.test(ipOrHost)) && portRegex.test(port)) {\r\n                result.ip = ipOrHost;\r\n                result.port = port;\r\n            }\r\n        }\r\n    }\r\n\r\n    return result;\r\n}\r\n\r\n\r\n    if (settings.input === \"form\") {\r\n        const type = jQuery(`[name=\"type\"]`).val().toLowerCase();\r\n        const ip = jQuery(`[name=\"ip\"]`).val();\r\n        const port = jQuery(`[name=\"port\"]`).val();\r\n        const username = jQuery(`[name=\"user\"]`).val();\r\n        const password = jQuery(`[name=\"password\"]`).val();\r\n\r\n        const proxyString = `${type}:\/\/${username ? `${username}:${password}@` : \"\"}${ip}:${port}`;\r\n        const parsedProxy = parseProxyString(proxyString);\r\n\r\n        if (parsedProxy.ip && parsedProxy.port) {\r\n            let newProxy = Object.assign({}, record, {\r\n                type: parsedProxy.type || \"\",\r\n                ip: parsedProxy.ip,\r\n                port: parsedProxy.port,\r\n                user: parsedProxy.username || \"\",\r\n                password: parsedProxy.password || \"\",\r\n                status: \"Pending\",\r\n                node: document.importNode(template, true),\r\n            });\r\n\r\n            newProxy.node.classList.add(\"table-row\");\r\n            newProxy.node.querySelector(\".row-ip\").textContent = newProxy.ip;\r\n            newProxy.node.querySelector(\".row-pt\").textContent = newProxy.port;\r\n            newProxy.node.querySelector(\".row-ur\").textContent = newProxy.user;\r\n            newProxy.node.querySelector(\".row-tp\").textContent = newProxy.type.toUpperCase();\r\n            newProxy.node.querySelector(\".row-pw\").textContent = newProxy.password.replaceAll(\/.\/g, \"\u25cf\").substring(0, 10);\r\n            newProxy.node.querySelector(\".row-st\").textContent = \"Pending\";\r\n\r\n            newProxy.node.querySelector(\".row-reset\").addEventListener(\"click\", (event) => {\r\n                if (event.target.classList.contains(\"row-reset\")) {\r\n                    newProxy.resetNode();\r\n                    renderList();\r\n                    proxyChecking();\r\n                }\r\n            });\r\n            newProxy.node.querySelector(\".row-copy\").addEventListener(\"click\", (event) => {\r\n                if (event.target.classList.contains(\"row-copy\")) {\r\n                    newProxy.copyNode();\r\n                    renderList();\r\n                }\r\n            });\r\n            newProxy.node.querySelector(\".row-delete\").addEventListener(\"click\", (event) => {\r\n                if (event.target.classList.contains(\"row-delete\")) {\r\n                    newProxy.deleteNode();\r\n                    renderList();\r\n                }\r\n            });\r\n\r\n            data.unshift(newProxy);\r\n\r\n            jQuery(\".proxy-form__fields input\").val(\"\");\r\n            jQuery(`[name=\"type\"]`).val(\"HTTPS\");\r\n        } else {\r\n            console.error(\"Incorrect proxy string\");\r\n        }\r\n    } else {\r\n        \/\/ if Textarea input\r\n        const proxyList = jQuery(`[name=\"list\"]`).val()\r\n          .split(\"\\n\")\r\n          .map((line) => line.trim())\r\n          .filter((line) => line.length > 0);\r\n        proxyList.forEach((proxyString) => {\r\n            const parsedProxy = parseProxyString(proxyString);\r\n\r\n            if (parsedProxy.ip && parsedProxy.port) {\r\n                let newProxy = Object.assign({}, record, {\r\n                    type: parsedProxy.type || \"\",\r\n                    ip: parsedProxy.ip,\r\n                    port: parsedProxy.port,\r\n                    user: parsedProxy.username || \"\",\r\n                    password: parsedProxy.password || \"\",\r\n                    status: \"Pending\",\r\n                    node: document.importNode(template, true),\r\n                });\r\n\r\n                newProxy.node.classList.add(\"table-row\");\r\n                newProxy.node.querySelector(\".row-ip\").textContent = newProxy.ip;\r\n                newProxy.node.querySelector(\".row-pt\").textContent = newProxy.port;\r\n                newProxy.node.querySelector(\".row-ur\").textContent = newProxy.user;\r\n                newProxy.node.querySelector(\".row-tp\").textContent = newProxy.type.toUpperCase();\r\n                newProxy.node.querySelector(\".row-pw\").textContent = newProxy.password.replaceAll(\/.\/g, \"\u25cf\").substring(0, 10);\r\n                newProxy.node.querySelector(\".row-st\").textContent = \"Pending\";\r\n\r\n                newProxy.node.querySelector(\".row-reset\").addEventListener(\"click\", (event) => {\r\n                    const button = event.target.closest(\".row-reset\");\r\n                     if (button) {\r\n                        newProxy.resetNode();\r\n                        renderList();\r\n                        proxyChecking();\r\n                    }\r\n                });\r\n                newProxy.node.querySelector(\".row-copy\").addEventListener(\"click\", (event) => {\r\n                    const button = event.target.closest(\".row-copy\");\r\n                     if (button) {\r\n                        newProxy.copyNode();\r\n                        renderList();\r\n                    }\r\n                });\r\n                newProxy.node.querySelector(\".row-delete\").addEventListener(\"click\", (event) => {\r\n                    const button = event.target.closest(\".row-delete\");\r\n                     if (button) {\r\n                        newProxy.deleteNode();\r\n                        renderList();\r\n                    }\r\n                });\r\n\r\n                data.unshift(newProxy);\r\n            } else {\r\n                console.error(\"Incorrect proxy format\");\r\n                const errorSpan = document.querySelector(\".invalid-format\");\r\n                errorSpan.style.display = \"inline\";\r\n            }\r\n        });\r\n\r\n        jQuery(\".proxy-form__textarea textarea\").val(\"\");\r\n    }\r\n    renderList();\r\n});\r\n\r\n  jQuery(\".header-filter__expand\").on(\"click\", function showFilter(event) {\r\n    const button = event.target.closest(\".header-filter__expand\");\r\n    if (button) {\r\n        button.classList.toggle(\"filter-visible\");\r\n    }\r\n  });\r\njQuery(\".header-actions__export\").on(\"mouseenter\", function () {\r\n    jQuery(\".header-actions__export-list\").css(\"display\", \"block\");\r\n});\r\n\r\njQuery(\".header-actions__export-list\").on(\"mouseleave\", function () {\r\n    jQuery(\".header-actions__export-list\").css(\"display\", \"none\");\r\n});\r\n  jQuery(\".controls-check\").on(\"click\", function startCheck(event) {\r\n    jQuery(\".controls-add\").click();\r\n    proxyChecking();\r\n  });\r\n  jQuery(\".header-filter__list>input\").on(\r\n    \"click\",\r\n    function changeFilter(event) {\r\n      if (event.target.id == \"all\") {\r\n        settings.filter = Object.keys(settings.filter).reduce((a, k) => {\r\n          a[k] = false;\r\n          return a;\r\n        }, {});\r\n        settings.filter.all = true;\r\n      } else {\r\n        jQuery\r\n          .makeArray(jQuery(`input[name=\"filter\"]`))\r\n          .forEach((e) => (settings.filter[e.id] = e.checked));\r\n        if (\r\n          !Object.entries(settings.filter).some(\r\n            (e) => e[0] != \"all\" && e[1] == true\r\n          )\r\n        ) {\r\n          settings.filter = Object.keys(settings.filter).reduce((a, k) => {\r\n            a[k] = false;\r\n            return a;\r\n          }, {});\r\n          settings.filter.all = true;\r\n        } else {\r\n          settings.filter.all = false;\r\n        }\r\n      }\r\n      renderList();\r\n    }\r\n  );\r\n  jQuery(\".header-actions__clear\").on(\"click\", function clearEverything(event) {\r\n    if (settings.filter.all == true) {\r\n      data.length = 0;\r\n    } else {\r\n      data\r\n        .filter(\r\n          (e) =>\r\n            settings.filter[e.type] == true ||\r\n            Object.entries(e.state).some(\r\n              (o) => o[1] == true && settings.filter[o[0]] == true\r\n            )\r\n        )\r\n        .forEach((e) => e.deleteNode());\r\n    }\r\n    renderList();\r\n  });\r\n  jQuery(\".header-actions__reset\").on(\"click\", function resetEverything(event) {\r\n    if (settings.filter.all == true) {\r\n      data.forEach((e) => e.resetNode());\r\n    } else data.filter((e) => settings.filter[e.type] === true || Object.entries(e.state).some((o) => o[1] == true && settings.filter[o[0]] === true)).forEach((e) => e.resetNode());\r\n    renderList();\r\n    setTimeout(proxyChecking, 100);\r\n  });\r\n  jQuery(\".proxy-results__page\").on(\"click\", function changePage(event) {\r\n    if (event.target.tagName.toLowerCase() == \"button\") {\r\n      if (event.target.classList.contains(\"page-prev\")) {\r\n        settings.page = Math.max(settings.page - 1, 1);\r\n      } else if (event.target.classList.contains(\"page-next\")) {\r\n        settings.page = Math.min(\r\n          settings.page + 1,\r\n          Math.ceil(data.length \/ 10)\r\n        );\r\n      } else\r\n        settings.page =\r\n          Array.from(event.target.parentElement.children).indexOf(\r\n            event.target\r\n          ) + 1;\r\n      renderList();\r\n    }\r\n  });\r\n\r\n\/\/Functions \r\n\r\nfunction updateExportButtonState() {\r\n    const hasData = data.some(e => e.state.checked && !e.state.unavailable);\r\n    jQuery(\".header-actions__export\").prop(\"disabled\", !hasData);\r\n}\r\n\r\n  function renderList() {\r\n    let arraySize = Math.max(Math.ceil(data.length \/ 10), 1);\r\n    jQuery\r\n      .makeArray(jQuery(`input[name=\"filter\"]`))\r\n      .forEach((e) => (e.checked = settings.filter[e.id]));\r\n    let view = [];\r\n    if (settings.filter.all == true) {\r\n      settings.page = Math.min(settings.page, arraySize);\r\n      data\r\n        .slice((settings.page - 1) * 10, settings.page * 10)\r\n        .forEach((o) => view.push(o.node));\r\n    } else {\r\n      arraySize = Math.max(\r\n        Math.ceil(\r\n          data.filter(\r\n            (e) =>\r\n              settings.filter[e.type] === true ||\r\n              Object.entries(e.state).some(\r\n                (o) => o[1] == true && settings.filter[o[0]] === true\r\n              )\r\n          ).length \/ 10\r\n        ),\r\n        1\r\n      );\r\n      settings.page = Math.min(settings.page, arraySize);\r\n      data\r\n        .filter(\r\n          (e) =>\r\n            settings.filter[e.type] === true ||\r\n            Object.entries(e.state).some(\r\n              (o) => o[1] == true && settings.filter[o[0]] === true\r\n            )\r\n        )\r\n        .slice((settings.page - 1) * 10, settings.page * 10)\r\n        .forEach((o) => view.push(o.node));\r\n    }\r\n    jQuery(\".proxy-results__empty\").toggleClass(\"empty-visible\", !view.length);\r\n    jQuery(\".table-content\").empty();\r\n    jQuery(\".table-content\").append(view);\r\n    jQuery(\".page-list\").empty();\r\n    for (let i = 0; i < arraySize; i++) {\r\n      jQuery(\".page-list\").append(jQuery(`button\/>`, { text: i + 1 }));\r\n    }\r\n    jQuery(\".page-list\")\r\n      .children()\r\n      .each((i, e) =>\r\n        jQuery(e).toggleClass(\"page-selected\", settings.page == i + 1)\r\n      );\r\n    jQuery(\".page-prev\").toggleClass(\"page-last\", settings.page == 1);\r\n    jQuery(\".page-next\").toggleClass(\"page-last\", settings.page == arraySize);\r\n    jQuery(\".checked-all\").text(data.length);\r\n    jQuery(\".checked-done\").text(\r\n      data.filter(\r\n        (e) => e.state.pending == false && e.state.processing == false\r\n      ).length\r\n    );\r\n    jQuery(\".available-all\").text(data.length);\r\n    jQuery(\".available-done\").text(\r\n      data.filter(\r\n        (e) =>\r\n          e.state.pending == false &&\r\n          e.state.processing == false &&\r\n          e.state.unavailable == false\r\n      ).length\r\n    );\r\n    updateExportButtonState();\r\n  }\r\n  function proxyChecking() {\r\n    data\r\n      .filter((e) => e.state.pending == true)\r\n      .forEach((e) => {\r\n        e.status = \"Checking\";\r\n        e.state = Object.keys(e.state).reduce((a, k) => {\r\n          a[k] = false;\r\n          return a;\r\n        }, {});\r\n        e.state.processing = true;\r\n        e.node.querySelector(\".row-st\").textContent = e.status;\r\n        e.node.querySelector(\".row-st\").className = \"row-st status-1\";\r\n        renderList();\r\n        let timer = Date.now();\r\n        jQuery.ajax({\r\n          headers: {\r\n            Accept: \"application\/json\",\r\n            \"Content-Type\": \"application\/json\",\r\n          },\r\n          timeout: 30000,\r\n          url: \"https:\/\/time-test.gologin.com\/check_proxy\",\r\n          type: \"post\",\r\n          data: JSON.stringify({\r\n            type: e.type,\r\n            host: e.ip,\r\n            port: e.port,\r\n            username: e.user,\r\n            password: e.password,\r\n          }),\r\n          success: function (response) {\r\n            if (response.hasOwnProperty(\"success\")) {\r\n              e.status = `not working`;\r\n              e.node.querySelector(\".row-st\").textContent = e.status;\r\n              e.node.querySelector(\".row-st\").className = \"row-st status-2\";\r\n              e.state = Object.keys(e.state).reduce((a, k) => {\r\n                a[k] = false;\r\n                return a;\r\n              }, {});\r\n              e.state.unavailable = true;\r\n            } else {\r\n              e.location = `${response.country} ${\r\n                response.stateProv ? response.stateProv : \"\"\r\n              } ${response.city}`;\r\n              timer = Math.ceil((Date.now() - timer) \/ 4);\r\n              e.status = `${timer} ms`;\r\n              e.node.querySelector(\".row-st\").textContent = e.status;\r\n              e.node.querySelector(\".row-lc\").textContent = e.location;\r\n              e.node.querySelector(\r\n                \".row-st\"\r\n              ).className = `row-st status-${Math.max(\r\n                8 - Math.ceil(timer \/ 100),\r\n                3\r\n              )}`;\r\n              e.state = Object.keys(e.state).reduce((a, k) => {\r\n                a[k] = false;\r\n                return a;\r\n              }, {});\r\n              e.state.checked = true;\r\n            }\r\n            renderList();\r\n          },\r\n          error: function () {\r\n            e.status = `not working`;\r\n            e.node.querySelector(\".row-st\").textContent = e.status;\r\n            e.node.querySelector(\".row-st\").className = \"row-st status-2\";\r\n            e.state = Object.keys(e.state).reduce((a, k) => {\r\n              a[k] = false;\r\n              return a;\r\n            }, {});\r\n            e.state.unavailable = true;\r\n            renderList();\r\n          },\r\n        });\r\n      });\r\n  }\r\n\r\nfunction downloadFile(content, fileName, mimeType) {\r\n    const blob = new Blob([content], { type: mimeType });\r\n    const link = document.createElement(\"a\");\r\n    link.href = URL.createObjectURL(blob);\r\n    link.download = fileName;\r\n    document.body.appendChild(link);\r\n    link.click();\r\n    document.body.removeChild(link);\r\n}\r\n\r\nfunction getWorkingProxies() {\r\n    return data\r\n        .filter(e => e.state.checked && !e.state.unavailable) \/\/ \u0422\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u043a\u0441\u0438\r\n        .map(e => {\r\n            let proxyString = e.ip + \":\" + e.port;\r\n            if (e.type) proxyString = `${e.type}:\/\/${proxyString}`;\r\n            if (e.user) proxyString += `:${e.user}:${e.password}`;\r\n            return proxyString;\r\n        });\r\n}\r\n\r\n\/\/ TXT export\r\njQuery(\".export-list__action\").eq(0).on(\"click\", function () {\r\n    const proxies = getWorkingProxies();\r\n    if (proxies.length) {\r\n        downloadFile(proxies.join(\"\\n\"), \"proxies.txt\", \"text\/plain\");\r\n    }\r\n});\r\n\r\n\/\/ CSV Export\r\njQuery(\".export-list__action\").eq(1).on(\"click\", function () {\r\n    const proxies = getWorkingProxies();\r\n    if (proxies.length) {\r\n        const csvContent = \"Type,IP,Port,User,Password\\n\" +\r\n            data.filter(e => e.state.checked && !e.state.unavailable)\r\n                .map(e => `${e.type || \"\"},${e.ip},${e.port},${e.user || \"\"},${e.password || \"\"}`)\r\n                .join(\"\\n\");\r\n        downloadFile(csvContent, \"proxies.csv\", \"text\/csv\");\r\n    }\r\n});\r\nupdateExportButtonState();\r\n});\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e611916 e-flex e-con-boxed e-con e-parent\" data-id=\"e611916\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1efc90d elementor-widget elementor-widget-heading\" data-id=\"1efc90d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Floppydata proxy checker online<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-795b3fd elementor-widget elementor-widget-text-editor\" data-id=\"795b3fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span class=\"Editor_t__not_edited__WuRP8\">Notre v\u00e9rificateur de proxy gratuit <\/span><span class=\"Editor_t__added__LtuNJ\">aide<\/span> <span class=\"Editor_t__added__LtuNJ\">vous<\/span> <span class=\"Editor_t__added__LtuNJ\">confirmer<\/span> <span class=\"Editor_t__added__LtuNJ\">que<\/span> <span class=\"Editor_t__added__LtuNJ\">les<\/span> <span class=\"Editor_t__added__LtuNJ\">mandataires<\/span> <span class=\"Editor_t__added__LtuNJ\">vous<\/span> <span class=\"Editor_t__added__LtuNJ\">besoin<\/span> <span class=\"Editor_t__added__LtuNJ\">sont<\/span> <span class=\"Editor_t__added__LtuNJ\">travail<\/span> <span class=\"Editor_t__added__LtuNJ\">par la rapidit\u00e9 <\/span><span class=\"Editor_t__not_edited__WuRP8\">et <\/span><span class=\"Editor_t__added__LtuNJ\">facile<\/span> <span class=\"Editor_t__added__LtuNJ\">test.<\/span> <span class=\"Editor_t__added__LtuNJ\">Vous<\/span> <span class=\"Editor_t__added__LtuNJ\">volont\u00e9<\/span> <span class=\"Editor_t__added__LtuNJ\">\u00eatre<\/span> <span class=\"Editor_t__added__LtuNJ\">de le confirmer, <\/span><span class=\"Editor_t__not_edited__WuRP8\">\u00e0 l&rsquo;aide de notre Proxy Checker, <\/span><span class=\"Editor_t__added__LtuNJ\">si<\/span> <span class=\"Editor_t__added__LtuNJ\">ou<\/span> <span class=\"Editor_t__added__LtuNJ\">pas<\/span> <span class=\"Editor_t__added__LtuNJ\">votre<\/span> <span class=\"Editor_t__added__LtuNJ\">Les serveurs proxy sont fiables<\/span><span class=\"Editor_t__not_edited__WuRP8\">, <\/span><span class=\"Editor_t__added__LtuNJ\">quelle est leur <\/span><span class=\"Editor_t__not_edited__WuRP8\">vitesse<\/span><span class=\"Editor_t__added__LtuNJ\"> est<\/span><span class=\"Editor_t__not_edited__WuRP8\">et <\/span><span class=\"Editor_t__added__LtuNJ\">quel <\/span><span class=\"Editor_t__not_edited__WuRP8\">niveau de s\u00e9curit\u00e9 <\/span><span class=\"Editor_t__added__LtuNJ\">de<\/span> <span class=\"Editor_t__added__LtuNJ\">poss\u00e9der<\/span> <span class=\"Editor_t__added__LtuNJ\">\u00e0<\/span> <span class=\"Editor_t__added__LtuNJ\">assurer<\/span> <span class=\"Editor_t__added__LtuNJ\">vous<\/span> <span class=\"Editor_t__added__LtuNJ\">de<\/span> <span class=\"Editor_t__added__LtuNJ\">r\u00e9union<\/span> <span class=\"Editor_t__added__LtuNJ\">votre<\/span> <span class=\"Editor_t__added__LtuNJ\">besoins<\/span> <span class=\"Editor_t__not_edited__WuRP8\">en ligne<\/span><span class=\"Editor_t__not_edited_long__JuNNx\">. Cet outil de v\u00e9rification de proxy est <\/span><span class=\"Editor_t__added__LtuNJ\">parfait<\/span><span class=\"Editor_t__not_edited__WuRP8\"> pour <\/span><span class=\"Editor_t__added__LtuNJ\">tout<\/span> <span class=\"Editor_t__added__LtuNJ\">de<\/span> <span class=\"Editor_t__added__LtuNJ\">s\u00e9curisation<\/span><span class=\"Editor_t__not_edited__WuRP8\"> navigation<\/span> <span class=\"Editor_t__added__LtuNJ\">\u00e0<\/span><span class=\"Editor_t__not_edited__WuRP8\"> grattage<\/span> <span class=\"Editor_t__added__LtuNJ\">donn\u00e9es<\/span> <span class=\"Editor_t__added__LtuNJ\">\u00e0 <\/span><span class=\"Editor_t__not_edited__WuRP8\">contourner <\/span><span class=\"Editor_t__added__LtuNJ\">g\u00e9orestrictions<\/span> <span class=\"Editor_t__added__LtuNJ\">en<\/span> <span class=\"Editor_t__added__LtuNJ\">s\u00fbr<\/span> <span class=\"Editor_t__added__LtuNJ\">connaissances<\/span> <span class=\"Editor_t__not_edited__WuRP8\">que vos mandataires sont <\/span><span class=\"Editor_t__added__LtuNJ\">dans<\/span> <span class=\"Editor_t__added__LtuNJ\">bon \u00e9tat de fonctionnement <\/span><span class=\"Editor_t__not_edited__WuRP8\">et <\/span><span class=\"Editor_t__added__LtuNJ\">fonctionner efficacement<\/span><span class=\"Editor_t__not_edited__WuRP8\">.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-298697d e-flex e-con-boxed e-con e-parent\" data-id=\"298697d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e78c5ed e-con-full e-flex e-con e-child\" data-id=\"e78c5ed\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_offset&quot;:110,&quot;sticky_parent&quot;:&quot;yes&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;],&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1c5da3a elementor-widget elementor-widget-heading\" data-id=\"1c5da3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Questions fr\u00e9quemment pos\u00e9es<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e50772 elementor-widget__width-initial elementor-widget elementor-widget-n-accordion\" data-id=\"9e50772\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;max_items_expended&quot;:&quot;multiple&quot;,&quot;n_accordion_animation_duration&quot;:{&quot;unit&quot;:&quot;ms&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;default_state&quot;:&quot;expanded&quot;}\" data-widget_type=\"nested-accordion.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-accordion\" aria-label=\"Accordion. Open links with Enter or Space, close with Escape, and navigate with Arrow Keys\">\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1660\" class=\"e-n-accordion-item\" open>\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"1\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"e-n-accordion-item-1660\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><h3 class=\"e-n-accordion-item-title-text\"> Y a-t-il une limite au nombre de proxies que je peux v\u00e9rifier en m\u00eame temps ? <\/h3><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1660\" class=\"elementor-element elementor-element-e2b7068 e-con-full e-flex e-con e-child\" data-id=\"e2b7068\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-040b90f elementor-widget elementor-widget-text-editor\" data-id=\"040b90f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Non, notre v\u00e9rificateur de proxy en ligne vous permet de tester un nombre illimit\u00e9 de proxies simultan\u00e9ment. Vous pouvez coller un seul proxy ou toute une liste pour v\u00e9rifier leur validit\u00e9 en une seule fois. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t\t<details id=\"e-n-accordion-item-1661\" class=\"e-n-accordion-item\" >\n\t\t\t\t<summary class=\"e-n-accordion-item-title\" data-accordion-index=\"2\" tabindex=\"-1\" aria-expanded=\"false\" aria-controls=\"e-n-accordion-item-1661\" >\n\t\t\t\t\t<span class='e-n-accordion-item-title-header'><h3 class=\"e-n-accordion-item-title-text\"> Quels sont les types de proxy pris en charge par le v\u00e9rificateur ? <\/h3><\/span>\n\t\t\t\t\t\t\t<span class='e-n-accordion-item-title-icon'>\n\t\t\t<span class='e-opened' ><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span>\n\t\t\t<span class='e-closed'><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span>\n\t\t<\/span>\n\n\t\t\t\t\t\t<\/summary>\n\t\t\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1661\" class=\"elementor-element elementor-element-974576e e-con-full e-flex e-con e-child\" data-id=\"974576e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div role=\"region\" aria-labelledby=\"e-n-accordion-item-1661\" class=\"elementor-element elementor-element-4869a9b e-flex e-con-boxed e-con e-child\" data-id=\"4869a9b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e1a9a47 elementor-widget elementor-widget-text-editor\" data-id=\"e1a9a47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Notre outil prend en charge les types de proxy suivants :<\/p><ul><li><strong>HTTP<\/strong><\/li><li><strong>HTTPS<\/strong><\/li><li><strong>SOCKS4<\/strong><\/li><li><strong>SOCKS5<\/strong><\/li><\/ul><p>Il suffit de s\u00e9lectionner le type de procuration appropri\u00e9 avant de commencer le contr\u00f4le pour garantir des r\u00e9sultats pr\u00e9cis.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/details>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Y a-t-il une limite au nombre de proxies que je peux v\\u00e9rifier en m\\u00eame temps ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Non, notre v\\u00e9rificateur de proxy en ligne vous permet de tester un nombre illimit\\u00e9 de proxies simultan\\u00e9ment. Vous pouvez coller un seul proxy ou toute une liste pour v\\u00e9rifier leur validit\\u00e9 en une seule fois.\"}},{\"@type\":\"Question\",\"name\":\"Quels sont les types de proxy pris en charge par le v\\u00e9rificateur ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Notre outil prend en charge les types de proxy suivants :HTTPHTTPSSOCKS4SOCKS5Il suffit de s\\u00e9lectionner le type de procuration appropri\\u00e9 avant de commencer le contr\\u00f4le pour garantir des r\\u00e9sultats pr\\u00e9cis.\"}}]}<\/script>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>TypeHTTPHTTPSSOCKS4SOCKS5 IP Port Utilisateur Mot de passe Ins\u00e9rez ici la liste des mandataires : Format de donn\u00e9es invalide Texte brut Ajouter \u00e0 la file d&rsquo;attente V\u00e9rifier le proxy Liste de procurations V\u00e9rifi\u00e9 0 sur 0 Disponible 0 sur 0 Tous HTTP HTTPS SOCKS4 SOCKS5 Indisponible En attente Exporter TXT Exporter CSV La liste est vide [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-31946","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/pages\/31946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/comments?post=31946"}],"version-history":[{"count":4,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/pages\/31946\/revisions"}],"predecessor-version":[{"id":31954,"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/pages\/31946\/revisions\/31954"}],"wp:attachment":[{"href":"https:\/\/floppydata.com\/fr\/wp-json\/wp\/v2\/media?parent=31946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}