whomails / index.html
VTR123456's picture
Update index.html
2ebb961 verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WhoMails | Outil de prospection B2B pour marketeurs et agences</title>
<meta name="description" content="Découvrez les contacts clés (PDG, décideurs) avec WhoMails. Idéal pour les campagnes d'emailing et prospection téléphonique. Obtenez emails et numéros directs.">
<meta name="keywords" content="prospection B2B, emails PDG, numéros décideurs, WhoMails, leads qualifiés, campagne emailing, prospection téléphonique, génération leads">
<meta name="author" content="WhoMails">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://whomails.com">
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
.tab-button.active {
border-bottom: 3px solid #3b82f6;
color: #3b82f6;
font-weight: 600;
}
.success-box {
border-left: 5px solid #10b981;
background-color: #ecfdf5;
}
.warning-box {
border-left: 5px solid #f59e0b;
background-color: #fffbeb;
}
.error-box {
border-left: 5px solid #ef4444;
background-color: #fee2e2;
}
.info-box {
border-left: 5px solid #3b82f6;
background-color: #eff6ff;
}
.section-title {
background-color: #e0f2fe;
}
.loader {
border: 4px solid #f3f3f3;
border-top: 4px solid #3b82f6;
border-radius: 50%;
width: 30px;
height: 30px;
animation: spin 1s linear infinite;
margin: 0 auto;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.progress-bar {
height: 4px;
background-color: #e0f2fe;
border-radius: 2px;
margin-top: 8px;
}
.progress-bar-fill {
height: 100%;
background-color: #3b82f6;
border-radius: 2px;
transition: width 0.3s ease;
}
.counter {
font-size: 2.5rem;
font-weight: bold;
color: #1e40af;
}
.review-card {
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease;
}
.review-card:hover {
transform: translateY(-5px);
}
.highlight-box {
background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
color: white;
border-radius: 8px;
}
.feature-icon {
font-size: 2rem;
color: #3b82f6;
}
.search-section {
background-color: #f8fafc;
padding: 3rem 0;
border-radius: 0.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
</style>
</head>
<body class="bg-gray-50 min-h-screen">
<!-- Navigation -->
<nav class="bg-white shadow-sm">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<i class="fas fa-envelope text-blue-500 text-2xl mr-2"></i>
<span class="text-xl font-semibold text-gray-900">WhoMails</span>
</div>
</div>
<div class="hidden sm:ml-6 sm:flex sm:items-center">
<a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-900 hover:bg-gray-100">Accueil</a>
<a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">Tarifs</a>
<a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">Connexion</a>
<a href="#" class="ml-4 px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700">Inscription</a>
</div>
</div>
</div>
</nav>
<!-- Main Search Section -->
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<div class="search-section">
<div class="text-center mb-8">
<h1 class="text-3xl font-extrabold text-gray-900 sm:text-4xl lg:text-5xl">
<span class="block">Trouvez les contacts clés</span>
<span class="block text-blue-600">pour votre prospection B2B</span>
</h1>
<p class="mt-4 max-w-2xl text-xl text-gray-600 mx-auto">
Accédez aux emails et numéros des PDG et décideurs pour booster vos campagnes d'emailing et appels.
</p>
</div>
<!-- Tabs Navigation -->
<div class="border-b border-gray-200 mb-8">
<div class="flex space-x-8 justify-center">
<button id="singleTab" class="tab-button active py-4 px-1 text-sm font-medium">
<i class="fas fa-search mr-2"></i>Recherche unique
</button>
<button id="batchTab" class="tab-button py-4 px-1 text-sm font-medium">
<i class="fas fa-file-excel mr-2"></i>Traitement par lot
</button>
</div>
</div>
<!-- Single Search Tab Content -->
<div id="singleTabContent" class="tab-content active">
<div class="bg-white shadow rounded-lg p-6 mb-8 max-w-4xl mx-auto">
<div class="flex">
<input type="text" id="domainInput" placeholder="exemple.com ou https://exemple.com"
class="flex-1 min-w-0 block w-full px-3 py-3 rounded-md border border-gray-300 shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm">
<button id="searchButton" class="ml-3 inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i class="fas fa-search mr-2"></i>Rechercher
</button>
</div>
</div>
</div>
<!-- Batch Processing Tab Content -->
<div id="batchTabContent" class="tab-content hidden">
<div class="bg-white shadow rounded-lg p-6 mb-8 max-w-4xl mx-auto">
<!-- File Upload -->
<div class="mb-6">
<label class="block text-sm font-medium text-gray-700 mb-2">Fichier Excel (.xlsx)</label>
<div class="mt-1 flex justify-center px-6 pt-5 pb-6 border-2 border-gray-300 border-dashed rounded-md">
<div class="space-y-1 text-center">
<div class="flex text-sm text-gray-600">
<label for="fileUpload" class="relative cursor-pointer bg-white rounded-md font-medium text-blue-600 hover:text-blue-500 focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2 focus-within:ring-blue-500">
<span>Télécharger un fichier</span>
<input id="fileUpload" type="file" class="sr-only" accept=".xlsx">
</label>
<p class="pl-1">ou glisser-déposer</p>
</div>
<p class="text-xs text-gray-500">XLSX jusqu'à 10MB</p>
</div>
</div>
</div>
<!-- Process Button -->
<div class="flex justify-center">
<button id="processButton" class="inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i class="fas fa-search mr-2"></i>Analyser les domaines
</button>
</div>
</div>
</div>
</div>
</div>
<!-- Stats Section -->
<div class="bg-gray-100 py-12">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 text-center">
<div class="bg-white p-6 rounded-lg shadow">
<div class="counter" data-target="124857">0</div>
<p class="mt-2 text-lg font-medium text-gray-900">Emails de PDG collectés</p>
<p class="mt-1 text-gray-500">Pour vos campagnes d'emailing</p>
</div>
<div class="bg-white p-6 rounded-lg shadow">
<div class="counter" data-target="87632">0</div>
<p class="mt-2 text-lg font-medium text-gray-900">Numéros directs</p>
<p class="mt-1 text-gray-500">Pour votre prospection téléphonique</p>
</div>
<div class="bg-white p-6 rounded-lg shadow">
<div class="counter" data-target="35621">0</div>
<p class="mt-2 text-lg font-medium text-gray-900">Leads qualifiés</p>
<p class="mt-1 text-gray-500">Pour votre pipeline commercial</p>
</div>
</div>
</div>
</div>
<!-- Features Section -->
<div class="py-12 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="lg:text-center">
<h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">Fonctionnalités</h2>
<p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
Tout ce dont vous avez besoin pour votre prospection
</p>
<p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto">
WhoMails est l'outil ultime pour les marketeurs et agences qui veulent cibler les décideurs.
</p>
</div>
<div class="mt-10">
<div class="grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-3">
<!-- Feature 1 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i class="fas fa-user-tie feature-icon"></i>
</div>
<div class="ml-4">
<h3 class="text-lg font-medium text-gray-900">Contacts PDG & décideurs</h3>
<p class="mt-1 text-gray-500">
Accédez aux noms, prénoms, emails et numéros directs des décideurs clés.
</p>
</div>
</div>
</div>
<!-- Feature 2 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i class="fas fa-envelope feature-icon"></i>
</div>
<div class="ml-4">
<h3 class="text-lg font-medium text-gray-900">Emails pertinents</h3>
<p class="mt-1 text-gray-500">
Filtrez les emails génériques pour ne garder que les contacts stratégiques.
</p>
</div>
</div>
</div>
<!-- Feature 3 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i class="fas fa-phone-alt feature-icon"></i>
</div>
<div class="ml-4">
<h3 class="text-lg font-medium text-gray-900">Numéros directs</h3>
<p class="mt-1 text-gray-500">
Obtenez les numéros de téléphone personnels des responsables.
</p>
</div>
</div>
</div>
<!-- Feature 4 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i class="fas fa-file-import feature-icon"></i>
</div>
<div class="ml-4">
<h3 class="text-lg font-medium text-gray-900">Traitement par lot</h3>
<p class="mt-1 text-gray-500">
Importez des listes de domaines et exportez tous les contacts en CSV/Excel.
</p>
</div>
</div>
</div>
<!-- Feature 5 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i class="fas fa-chart-line feature-icon"></i>
</div>
<div class="ml-4">
<h3 class="text-lg font-medium text-gray-900">Analytics</h3>
<p class="mt-1 text-gray-500">
Suivez les taux de réponse et optimisez vos campagnes.
</p>
</div>
</div>
</div>
<!-- Feature 6 -->
<div class="bg-gray-50 p-6 rounded-lg">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i class="fas fa-plug feature-icon"></i>
</div>
<div class="ml-4">
<h3 class="text-lg font-medium text-gray-900">Intégrations</h3>
<p class="mt-1 text-gray-500">
Connectez-vous à vos outils CRM (Salesforce, Hubspot, Pipedrive).
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Testimonials Section -->
<div class="bg-gray-100 py-16">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-extrabold text-gray-900 text-center">Ils nous font confiance</h2>
<p class="mt-4 max-w-2xl text-xl text-gray-500 mx-auto text-center">
Découvrez ce que disent les professionnels du marketing et les agences.
</p>
<div class="mt-16 grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-3">
<!-- Testimonial 1 -->
<div class="bg-white p-6 review-card">
<div class="flex items-center">
<div class="flex-shrink-0">
<img class="h-12 w-12 rounded-full" src="https://randomuser.me/api/portraits/women/32.jpg" alt="">
</div>
<div class="ml-4">
<h4 class="text-lg font-medium text-gray-900">Sophie Martin</h4>
<p class="text-blue-600">Directrice Marketing, Agence NeoLead</p>
</div>
</div>
<div class="mt-4">
<p class="text-gray-600">
"WhoMails a révolutionné notre prospection. Nous avons multiplié par 3 notre taux de réponse en ciblant directement les PDG avec leurs emails personnels."
</p>
<div class="mt-4 flex text-yellow-400">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
</div>
</div>
<!-- Testimonial 2 -->
<div class="bg-white p-6 review-card">
<div class="flex items-center">
<div class="flex-shrink-0">
<img class="h-12 w-12 rounded-full" src="https://randomuser.me/api/portraits/men/43.jpg" alt="">
</div>
<div class="ml-4">
<h4 class="text-lg font-medium text-gray-900">Thomas Leroy</h4>
<p class="text-blue-600">CEO, SalesBoost Consulting</p>
</div>
</div>
<div class="mt-4">
<p class="text-gray-600">
"Les numéros de téléphone directs que nous trouvons avec WhoMails ont un taux de conversion 5x supérieur à nos listes achetées. Un must pour tout commercial B2B."
</p>
<div class="mt-4 flex text-yellow-400">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
</div>
</div>
<!-- Testimonial 3 -->
<div class="bg-white p-6 review-card">
<div class="flex items-center">
<div class="flex-shrink-0">
<img class="h-12 w-12 rounded-full" src="https://randomuser.me/api/portraits/women/65.jpg" alt="">
</div>
<div class="ml-4">
<h4 class="text-lg font-medium text-gray-900">Camille Dubois</h4>
<p class="text-blue-600">Responsable Acquisition, GrowthHack</p>
</div>
</div>
<div class="mt-4">
<p class="text-gray-600">
"La fonctionnalité de traitement par lot nous fait gagner des heures de travail. Nous pouvons maintenant prospecter 1000 cibles en quelques minutes seulement."
</p>
<div class="mt-4 flex text-yellow-400">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Results Section (Hidden by default) -->
<div id="resultsContainer" class="hidden max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<div class="bg-white shadow rounded-lg overflow-hidden">
<!-- Domain Info Header -->
<div class="px-6 py-4 border-b border-gray-200 bg-gray-50">
<h2 id="domainHeader" class="text-xl font-semibold text-gray-900"></h2>
</div>
<!-- Results Tabs -->
<div class="border-b border-gray-200">
<div class="flex overflow-x-auto">
<button data-tab="basicInfo" class="tab-results active py-4 px-6 text-sm font-medium">
<i class="fas fa-info-circle mr-2"></i>Informations
</button>
<button data-tab="registrantInfo" class="tab-results py-4 px-6 text-sm font-medium">
<i class="fas fa-user-tie mr-2"></i>Contacts PDG
</button>
<button data-tab="contactInfo" class="tab-results py-4 px-6 text-sm font-medium">
<i class="fas fa-address-book mr-2"></i>Contacts
</button>
<button data-tab="serverInfo" class="tab-results py-4 px-6 text-sm font-medium">
<i class="fas fa-server mr-2"></i>Serveurs
</button>
<button data-tab="statusInfo" class="tab-results py-4 px-6 text-sm font-medium">
<i class="fas fa-tag mr-2"></i>Statut
</button>
<button data-tab="rawInfo" class="tab-results py-4 px-6 text-sm font-medium">
<i class="fas fa-code mr-2"></i>Données brutes
</button>
</div>
</div>
<!-- Tab Contents -->
<div class="p-6">
<!-- Basic Info Tab -->
<div id="basicInfo" class="tab-results-content active">
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<!-- Domain Info Column -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-globe mr-2"></i>Informations du domaine
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Domaine</p>
<p id="domainName" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Noms de domaine</p>
<p id="domainNames" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Enregistré</p>
<p id="isRegistered" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Source</p>
<p id="source" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Anonyme</p>
<p id="anonymous" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
<!-- Dates Column -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="far fa-calendar-alt mr-2"></i>Dates importantes
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Date de création</p>
<p id="creationDate" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Date de mise à jour</p>
<p id="updatedDate" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Date d'expiration</p>
<p id="expirationDate" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Domaine bloqué</p>
<p id="holdStatus" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
<!-- Registrar Column -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-building mr-2"></i>Registraire
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Registraire</p>
<p id="registrar" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">URL</p>
<p id="registrarUrl" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Email</p>
<p id="registrarEmail" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Téléphone</p>
<p id="registrarPhone" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Serveur WHOIS</p>
<p id="whoisServer" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
</div>
<!-- Emails Section -->
<div class="mt-8">
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-envelope mr-2"></i>Emails
</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<h4 class="text-md font-medium text-gray-900 mb-3">Tous les emails</h4>
<div id="allEmails" class="space-y-2">
<div class="success-box px-4 py-3 rounded">
<p class="text-sm text-gray-700">Aucun email trouvé</p>
</div>
</div>
</div>
<div>
<h4 class="text-md font-medium text-gray-900 mb-3">Emails pertinents (PDG/Décideurs)</h4>
<div id="relevantEmails" class="space-y-2">
<div class="success-box px-4 py-3 rounded">
<p class="text-sm text-gray-700">Aucun email pertinent trouvé</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Registrant Info Tab -->
<div id="registrantInfo" class="tab-results-content hidden">
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<!-- Identity Column -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-id-card mr-2"></i>Identité du PDG
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Nom complet</p>
<p id="registrantName" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Organisation</p>
<p id="registrantOrg" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Email personnel</p>
<p id="registrantEmail" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Téléphone direct</p>
<p id="registrantPhone" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Fax</p>
<p id="registrantFax" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Type</p>
<p id="registrantType" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
<!-- Address Column -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-map-marker-alt mr-2"></i>Adresse
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Adresse</p>
<div id="registrantAddress" class="mt-1 text-sm text-gray-900 space-y-1">
<p>-</p>
</div>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Ville</p>
<p id="registrantCity" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">État/Région</p>
<p id="registrantState" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Code postal</p>
<p id="registrantPostalCode" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Pays</p>
<p id="registrantCountry" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Site web</p>
<p id="registrantWebsite" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
</div>
</div>
<!-- Contact Info Tab -->
<div id="contactInfo" class="tab-results-content hidden">
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<!-- Admin Contact -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-user-tie mr-2"></i>Contact administratif
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Nom complet</p>
<p id="adminName" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Organisation</p>
<p id="adminOrg" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Email</p>
<p id="adminEmail" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Téléphone</p>
<p id="adminPhone" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Fax</p>
<p id="adminFax" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Adresse</p>
<div id="adminAddress" class="mt-1 text-sm text-gray-900 space-y-1">
<p>-</p>
</div>
</div>
</div>
</div>
<!-- Tech Contact -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-cogs mr-2"></i>Contact technique
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Nom complet</p>
<p id="techName" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Organisation</p>
<p id="techOrg" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Email</p>
<p id="techEmail" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Téléphone</p>
<p id="techPhone" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Fax</p>
<p id="techFax" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Adresse</p>
<div id="techAddress" class="mt-1 text-sm text-gray-900 space-y-1">
<p>-</p>
</div>
</div>
</div>
</div>
</div>
<!-- Abuse Contact -->
<div class="mt-8">
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-exclamation-triangle mr-2"></i>Contact d'abus du registraire
</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Email d'abus</p>
<p id="abuseEmail" class="mt-1 text-sm text-gray-900">-</p>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Téléphone d'abus</p>
<p id="abusePhone" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
<div>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">Adresse du registraire</p>
<div id="registrarAddress" class="mt-1 text-sm text-gray-900 space-y-1">
<p>-</p>
</div>
</div>
<div>
<p class="text-sm font-medium text-gray-500">Pays</p>
<p id="registrarCountry" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Server Info Tab -->
<div id="serverInfo" class="tab-results-content hidden">
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<!-- Name Servers -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-network-wired mr-2"></i>Serveurs de noms (NS)
</h3>
<div id="nameServers" class="space-y-2">
<p class="text-sm text-gray-700">Aucun serveur de nom trouvé</p>
</div>
</div>
<!-- DNSSEC -->
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-lock mr-2"></i>Sécurité DNS
</h3>
<div class="space-y-3">
<div>
<p class="text-sm font-medium text-gray-500">DNSSEC</p>
<p id="dnssec" class="mt-1 text-sm text-gray-900">-</p>
</div>
</div>
</div>
</div>
</div>
<!-- Status Info Tab -->
<div id="statusInfo" class="tab-results-content hidden">
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-info-circle mr-2"></i>Statut du domaine
</h3>
<div id="domainStatus" class="space-y-2">
<p class="text-sm text-gray-700">Statut non disponible</p>
</div>
</div>
</div>
<!-- Raw Info Tab -->
<div id="rawInfo" class="tab-results-content hidden">
<div>
<h3 class="section-title px-4 py-2 rounded-md text-sm font-medium mb-4">
<i class="fas fa-code mr-2"></i>Données WHOIS brutes
</h3>
<pre id="rawData" class="bg-gray-100 p-4 rounded-md text-sm overflow-x-auto">Aucune donnée brute disponible</pre>
</div>
</div>
</div>
</div>
</div>
<!-- Batch Results Section -->
<div id="batchResultsContainer" class="hidden max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<div class="bg-white shadow rounded-lg overflow-hidden">
<!-- Results Header -->
<div class="px-6 py-4 border-b border-gray-200 bg-gray-50">
<h2 class="text-xl font-semibold text-gray-900">Résultats du traitement par lot</h2>
<p class="mt-1 text-sm text-gray-500">Contacts PDG et décideurs extraits pour votre prospection</p>
</div>
<!-- Results Table -->
<div class="p-6">
<div class="overflow-x-auto">
<table id="batchResultsTable" class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<!-- Headers will be added dynamically -->
</thead>
<tbody class="bg-white divide-y divide-gray-200">
<!-- Rows will be added dynamically -->
</tbody>
</table>
</div>
<!-- Download Buttons -->
<div class="mt-6 flex space-x-4">
<button id="downloadCsv" class="inline-flex items-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i class="fas fa-file-csv mr-2"></i>Télécharger CSV
</button>
<button id="downloadExcel" class="inline-flex items-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i class="fas fa-file-excel mr-2"></i>Télécharger Excel
</button>
<button id="importCrm" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">
<i class="fas fa-cloud-upload-alt mr-2"></i>Importer dans CRM
</button>
</div>
</div>
</div>
</div>
<!-- Processing Modal -->
<div id="processingModal" class="hidden fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full z-50">
<div class="relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white">
<div class="mt-3 text-center">
<div class="mx-auto flex items-center justify-center h-12 w-12 rounded-full bg-blue-100">
<div class="loader"></div>
</div>
<h3 class="text-lg leading-6 font-medium text-gray-900 mt-3">Traitement en cours</h3>
<div class="mt-2 px-7 py-3">
<p id="processingDomain" class="text-sm text-gray-500">Préparation...</p>
<div class="progress-bar mt-4">
<div id="progressBarFill" class="progress-bar-fill" style="width: 0%"></div>
</div>
<p id="progressText" class="text-sm text-gray-500 mt-2">0/0 domaines traités</p>
</div>
</div>
</div>
</div>
<!-- FAQ Section -->
<div class="bg-gray-100 py-16">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-extrabold text-gray-900 text-center">Questions fréquentes</h2>
<p class="mt-4 max-w-2xl text-xl text-gray-500 mx-auto text-center">
Tout ce que vous devez savoir sur WhoMails et la prospection B2B.
</p>
<div class="mt-12">
<div class="space-y-8">
<!-- FAQ Item 1 -->
<div class="bg-white shadow rounded-lg overflow-hidden">
<div class="px-6 py-5">
<button class="faq-toggle w-full flex justify-between items-center text-left">
<h3 class="text-lg font-medium text-gray-900">Comment WhoMails peut-il aider ma prospection B2B ?</h3>
<i class="fas fa-chevron-down text-gray-400"></i>
</button>
<div class="faq-content mt-4 hidden">
<p class="text-gray-600">
WhoMails vous donne accès aux contacts directs des décideurs (PDG, responsables techniques, etc.)
avec leurs emails personnels et numéros de téléphone directs. Cela vous permet de cibler précisément
les personnes clés plutôt que des adresses génériques comme contact@ ou info@, augmentant ainsi
considérablement vos taux de réponse.
</p>
</div>
</div>
</div>
<!-- FAQ Item 2 -->
<div class="bg-white shadow rounded-lg overflow-hidden">
<div class="px-6 py-5">
<button class="faq-toggle w-full flex justify-between items-center text-left">
<h3 class="text-lg font-medium text-gray-900">Quelle est la précision des données fournies ?</h3>
<i class="fas fa-chevron-down text-gray-400"></i>
</button>
<div class="faq-content mt-4 hidden">
<p class="text-gray-600">
Nos données proviennent directement des registres WHOIS officiels et sont mises à jour quotidiennement.
Nous filtrons et vérifions les informations pour vous fournir les contacts les plus pertinents et actuels.
En moyenne, nos emails PDG ont un taux de validité de 92% et nos numéros directs de 85%.
</p>
</div>
</div>
</div>
<!-- FAQ Item 3 -->
<div class="bg-white shadow rounded-lg overflow-hidden">
<div class="px-6 py-5">
<button class="faq-toggle w-full flex justify-between items-center text-left">
<h3 class="text-lg font-medium text-gray-900">Puis-je importer les données dans mon CRM ?</h3>
<i class="fas fa-chevron-down text-gray-400"></i>
</button>
<div class="faq-content mt-4 hidden">
<p class="text-gray-600">
Absolument ! WhoMails s'intègre avec les principaux CRM comme Salesforce, Hubspot et Pipedrive.
Vous pouvez également exporter les données en CSV ou Excel pour les importer dans n'importe quel système.
Nos exports incluent tous les champs nécessaires pour une intégration fluide.
</p>
</div>
</div>
</div>
<!-- FAQ Item 4 -->
<div class="bg-white shadow rounded-lg overflow-hidden">
<div class="px-6 py-5">
<button class="faq-toggle w-full flex justify-between items-center text-left">
<h3 class="text-lg font-medium text-gray-900">Quelle est la limite de domaines pour le traitement par lot ?</h3>
<i class="fas fa-chevron-down text-gray-400"></i>
</button>
<div class="faq-content mt-4 hidden">
<p class="text-gray-600">
Avec notre offre Pro, vous pouvez traiter jusqu'à 10 000 domaines par lot. Pour les besoins plus importants,
nous proposons des solutions personnalisées. Le traitement est rapide et vous recevrez une notification
par email lorsque votre fichier sera prêt à télécharger.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Final CTA -->
<div class="bg-blue-700">
<div class="max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8">
<h2 class="text-3xl font-extrabold text-white sm:text-4xl">
<span class="block">Prêt à transformer votre prospection ?</span>
<span class="block">Essayez WhoMails gratuitement.</span>
</h2>
<p class="mt-4 text-lg leading-6 text-blue-200">
Découvrez les contacts clés de vos prospects en quelques minutes. Aucune carte de crédit requise.
</p>
<a href="#" class="mt-8 w-full inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-blue-600 bg-white hover:bg-blue-50 sm:w-auto">
<i class="fas fa-play mr-2"></i> Démarrer l'essai gratuit
</a>
</div>
</div>
<!-- Footer -->
<footer class="bg-gray-800">
<div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-2 md:grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Produit</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Fonctionnalités</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Tarifs</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">API</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Intégrations</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Ressources</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Documentation</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Guides</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Blog</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Support</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Entreprise</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">À propos</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Carrières</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Presse</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Contact</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Légal</h3>
<ul class="mt-4 space-y-4">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Confidentialité</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">CGU</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Mentions légales</a></li>
</ul>
</div>
</div>
<div class="mt-8 border-t border-gray-700 pt-8 md:flex md:items-center md:justify-between">
<div class="flex space-x-6 md:order-2">
<a href="#" class="text-gray-400 hover:text-gray-300">
<i class="fab fa-twitter"></i>
</a>
<a href="#" class="text-gray-400 hover:text-gray-300">
<i class="fab fa-linkedin"></i>
</a>
<a href="#" class="text-gray-400 hover:text-gray-300">
<i class="fab fa-facebook"></i>
</a>
</div>
<p class="mt-8 text-base text-gray-400 md:mt-0 md:order-1">
&copy; 2023 WhoMails. Tous droits réservés.
</p>
</div>
</div>
</footer>
<script>
// Counter Animation
function animateCounters() {
const counters = document.querySelectorAll('.counter');
const speed = 200; // The lower the slower
counters.forEach(counter => {
const target = +counter.getAttribute('data-target');
const count = +counter.innerText;
const increment = target / speed;
if (count < target) {
counter.innerText = Math.ceil(count + increment);
setTimeout(animateCounters, 1);
} else {
counter.innerText = target.toLocaleString();
}
});
}
// Start counters when page loads
window.addEventListener('load', animateCounters);
// FAQ Toggle
document.querySelectorAll('.faq-toggle').forEach(button => {
button.addEventListener('click', () => {
const content = button.nextElementSibling;
const icon = button.querySelector('i');
content.classList.toggle('hidden');
icon.classList.toggle('fa-chevron-down');
icon.classList.toggle('fa-chevron-up');
});
});
// Tab Switching
document.getElementById('singleTab').addEventListener('click', function() {
document.getElementById('singleTab').classList.add('active');
document.getElementById('batchTab').classList.remove('active');
document.getElementById('singleTabContent').classList.add('active');
document.getElementById('batchTabContent').classList.remove('active');
});
document.getElementById('batchTab').addEventListener('click', function() {
document.getElementById('batchTab').classList.add('active');
document.getElementById('singleTab').classList.remove('active');
document.getElementById('batchTabContent').classList.add('active');
document.getElementById('singleTabContent').classList.remove('active');
});
// Results Tab Switching
document.querySelectorAll('.tab-results').forEach(tab => {
tab.addEventListener('click', function() {
// Remove active class from all tabs and content
document.querySelectorAll('.tab-results').forEach(t => t.classList.remove('active'));
document.querySelectorAll('.tab-results-content').forEach(c => c.classList.add('hidden'));
// Add active class to clicked tab and show corresponding content
this.classList.add('active');
const tabId = this.getAttribute('data-tab');
document.getElementById(tabId).classList.remove('hidden');
});
});
// Sample WHOIS data for demonstration
const sampleWhoisData = {
"domain": "example.com",
"domain_name": ["example.com", "www.example.com"],
"is_registered": true,
"source": "whois.verisign-grs.com",
"anonymous": false,
"creation_date": "1995-08-14T04:00:00Z",
"updated_date": "2022-08-13T07:58:21Z",
"expiration_date": "2023-08-13T04:00:00Z",
"hold": "NO",
"registrar": "RESERVED-INTERNET ASSIGNED NUMBERS AUTHORITY",
"registrar_info": {
"name": "RESERVED-INTERNET ASSIGNED NUMBERS AUTHORITY",
"url": "http://www.iana.org",
"email": "res-dom@iana.org",
"phone": "+1-310-301-5820",
"abuse_email": "abuse@iana.org",
"abuse_phone": "+1-310-301-5820",
"address": [
"4676 Admiralty Way",
"Suite 330",
"Marina del Rey, CA 90292"
],
"country": "US"
},
"whois_server": "whois.iana.org",
"emails": [
"res-dom@iana.org",
"abuse@iana.org",
"admin@example.com",
"john.doe@example.com",
"ceo@example.com"
],
"relevant_emails": [
"john.doe@example.com",
"ceo@example.com"
],
"registrant": {
"name": "John Doe",
"organization": "Example Inc.",
"email": "john.doe@example.com",
"phone": "+1-555-123-4567",
"fax": "+1-555-987-6543",
"street": "123 Example Street",
"street_1": "Suite 100",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US",
"website": "http://www.example.com",
"type": "individual",
"eppstatus": ["ok"],
"eligstatus": "eligible",
"reachstatus": "verified"
},
"admin": {
"name": "Jane Smith",
"organization": "Example Inc.",
"email": "jane.smith@example.com",
"phone": "+1-555-987-6543",
"street": "123 Example Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US",
"eppstatus": ["ok"],
"eligstatus": "eligible",
"reachstatus": "verified"
},
"tech": {
"name": "Mike Johnson",
"organization": "Example Inc.",
"email": "mike.johnson@example.com",
"phone": "+1-555-456-7890",
"street": "123 Example Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US",
"eppstatus": ["ok"],
"eligstatus": "eligible",
"reachstatus": "verified"
},
"name_servers": [
"a.iana-servers.net",
"b.iana-servers.net"
],
"dnssec": "unsigned",
"status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"clientUpdateProhibited"
],
"raw": {
"domain_name": "EXAMPLE.COM",
"registry_domain_id": "2336799_DOMAIN_COM-VRSN",
"registrar_whois_server": "whois.iana.org",
"registrar_url": "http://www.iana.org",
"updated_date": "2022-08-13T07:58:21Z",
"creation_date": "1995-08-14T04:00:00Z",
"expiration_date": "2023-08-13T04:00:00Z",
"registrar": "RESERVED-INTERNET ASSIGNED NUMBERS AUTHORITY",
"registrar_iana_id": "376",
"registrar_abuse_contact_email": "abuse@iana.org",
"registrar_abuse_contact_phone": "+1-310-301-5820",
"domain_status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"clientUpdateProhibited"
],
"name_server": [
"A.IANA-SERVERS.NET",
"B.IANA-SERVERS.NET"
],
"dnssec": "unsigned"
}
};
// Single Domain Search
document.getElementById('searchButton').addEventListener('click', function() {
const domain = document.getElementById('domainInput').value.trim();
if (!domain) {
alert('Veuillez entrer un domaine');
return;
}
// Show loading state
document.getElementById('resultsContainer').classList.add('hidden');
document.getElementById('searchButton').innerHTML = '<div class="loader"></div>';
document.getElementById('searchButton').disabled = true;
// Simulate API call with timeout
setTimeout(() => {
// In a real app, you would make an actual API call here
// For demo purposes, we're using the sample data
displayWhoisResults(sampleWhoisData);
// Reset button
document.getElementById('searchButton').innerHTML = '<i class="fas fa-search mr-2"></i>Rechercher';
document.getElementById('searchButton').disabled = false;
// Show results
document.getElementById('resultsContainer').classList.remove('hidden');
}, 1000);
});
// Display WHOIS results
function displayWhoisResults(data) {
// Set domain header
document.getElementById('domainHeader').textContent = `Résultats pour ${data.domain}`;
// Basic Info Tab
document.getElementById('domainName').textContent = data.domain || '-';
document.getElementById('domainNames').textContent = data.domain_name.join(', ') || '-';
document.getElementById('isRegistered').textContent = data.is_registered ? 'Oui' : 'Non';
document.getElementById('source').textContent = data.source || '-';
document.getElementById('anonymous').textContent = data.anonymous ? 'Oui' : 'Non';
// Dates
document.getElementById('creationDate').textContent = formatDate(data.creation_date) || '-';
document.getElementById('updatedDate').textContent = formatDate(data.updated_date) || '-';
document.getElementById('expirationDate').textContent = formatDate(data.expiration_date) || '-';
document.getElementById('holdStatus').textContent = data.hold === 'YES' ? 'Oui' : 'Non';
// Registrar
document.getElementById('registrar').textContent = data.registrar || '-';
document.getElementById('registrarUrl').textContent = data.registrar_info?.url || '-';
document.getElementById('registrarEmail').textContent = data.registrar_info?.email || '-';
document.getElementById('registrarPhone').textContent = data.registrar_info?.phone || '-';
document.getElementById('whoisServer').textContent = data.whois_server || '-';
// Emails
const allEmailsContainer = document.getElementById('allEmails');
const relevantEmailsContainer = document.getElementById('relevantEmails');
allEmailsContainer.innerHTML = '';
relevantEmailsContainer.innerHTML = '';
if (data.emails && data.emails.length > 0) {
data.emails.forEach(email => {
const emailDiv = document.createElement('div');
emailDiv.className = 'info-box px-4 py-3 rounded';
emailDiv.innerHTML = `<p class="text-sm text-gray-700">${email}</p>`;
allEmailsContainer.appendChild(emailDiv);
});
} else {
allEmailsContainer.innerHTML = '<div class="success-box px-4 py-3 rounded"><p class="text-sm text-gray-700">Aucun email trouvé</p></div>';
}
if (data.relevant_emails && data.relevant_emails.length > 0) {
data.relevant_emails.forEach(email => {
const emailDiv = document.createElement('div');
emailDiv.className = 'success-box px-4 py-3 rounded';
emailDiv.innerHTML = `<p class="text-sm text-gray-700">${email}</p>`;
relevantEmailsContainer.appendChild(emailDiv);
});
} else {
relevantEmailsContainer.innerHTML = '<div class="success-box px-4 py-3 rounded"><p class="text-sm text-gray-700">Aucun email pertinent trouvé</p></div>';
}
// Registrant Info Tab
document.getElementById('registrantName').textContent = data.registrant?.name || '-';
document.getElementById('registrantOrg').textContent = data.registrant?.organization || '-';
document.getElementById('registrantEmail').textContent = data.registrant?.email || '-';
document.getElementById('registrantPhone').textContent = data.registrant?.phone || '-';
document.getElementById('registrantFax').textContent = data.registrant?.fax || '-';
document.getElementById('registrantType').textContent = data.registrant?.type || '-';
// Registrant Address
const registrantAddressContainer = document.getElementById('registrantAddress');
registrantAddressContainer.innerHTML = '';
if (data.registrant?.street) {
registrantAddressContainer.innerHTML += `<p>${data.registrant.street}</p>`;
}
if (data.registrant?.street_1) {
registrantAddressContainer.innerHTML += `<p>${data.registrant.street_1}</p>`;
}
if (!data.registrant?.street && !data.registrant?.street_1) {
registrantAddressContainer.innerHTML = '<p>-</p>';
}
document.getElementById('registrantCity').textContent = data.registrant?.city || '-';
document.getElementById('registrantState').textContent = data.registrant?.state || '-';
document.getElementById('registrantPostalCode').textContent = data.registrant?.postal_code || '-';
document.getElementById('registrantCountry').textContent = data.registrant?.country || '-';
document.getElementById('registrantWebsite').textContent = data.registrant?.website || '-';
// Admin Contact
document.getElementById('adminName').textContent = data.admin?.name || '-';
document.getElementById('adminOrg').textContent = data.admin?.organization || '-';
document.getElementById('adminEmail').textContent = data.admin?.email || '-';
document.getElementById('adminPhone').textContent = data.admin?.phone || '-';
document.getElementById('adminFax').textContent = data.admin?.fax || '-';
// Admin Address
const adminAddressContainer = document.getElementById('adminAddress');
adminAddressContainer.innerHTML = '';
if (data.admin?.street) {
adminAddressContainer.innerHTML += `<p>${data.admin.street}</p>`;
}
if (data.admin?.city) {
adminAddressContainer.innerHTML += `<p>${data.admin.city}, ${data.admin.state} ${data.admin.postal_code}</p>`;
}
if (!data.admin?.street && !data.admin?.city) {
adminAddressContainer.innerHTML = '<p>-</p>';
}
// Tech Contact
document.getElementById('techName').textContent = data.tech?.name || '-';
document.getElementById('techOrg').textContent = data.tech?.organization || '-';
document.getElementById('techEmail').textContent = data.tech?.email || '-';
document.getElementById('techPhone').textContent = data.tech?.phone || '-';
document.getElementById('techFax').textContent = data.tech?.fax || '-';
// Tech Address
const techAddressContainer = document.getElementById('techAddress');
techAddressContainer.innerHTML = '';
if (data.tech?.street) {
techAddressContainer.innerHTML += `<p>${data.tech.street}</p>`;
}
if (data.tech?.city) {
techAddressContainer.innerHTML += `<p>${data.tech.city}, ${data.tech.state} ${data.tech.postal_code}</p>`;
}
if (!data.tech?.street && !data.tech?.city) {
techAddressContainer.innerHTML = '<p>-</p>';
}
// Abuse Contact
document.getElementById('abuseEmail').textContent = data.registrar_info?.abuse_email || '-';
document.getElementById('abusePhone').textContent = data.registrar_info?.abuse_phone || '-';
// Registrar Address
const registrarAddressContainer = document.getElementById('registrarAddress');
registrarAddressContainer.innerHTML = '';
if (data.registrar_info?.address) {
data.registrar_info.address.forEach(line => {
registrarAddressContainer.innerHTML += `<p>${line}</p>`;
});
} else {
registrarAddressContainer.innerHTML = '<p>-</p>';
}
document.getElementById('registrarCountry').textContent = data.registrar_info?.country || '-';
// Name Servers
const nameServersContainer = document.getElementById('nameServers');
nameServersContainer.innerHTML = '';
if (data.name_servers && data.name_servers.length > 0) {
data.name_servers.forEach(ns => {
const nsDiv = document.createElement('div');
nsDiv.className = 'info-box px-4 py-3 rounded';
nsDiv.innerHTML = `<p class="text-sm text-gray-700">${ns}</p>`;
nameServersContainer.appendChild(nsDiv);
});
} else {
nameServersContainer.innerHTML = '<div class="info-box px-4 py-3 rounded"><p class="text-sm text-gray-700">Aucun serveur de nom trouvé</p></div>';
}
// DNSSEC
document.getElementById('dnssec').textContent = data.dnssec === 'signed' ? 'Signé' : 'Non signé';
// Status
const domainStatusContainer = document.getElementById('domainStatus');
domainStatusContainer.innerHTML = '';
if (data.status && data.status.length > 0) {
data.status.forEach(status => {
const statusDiv = document.createElement('div');
statusDiv.className = 'info-box px-4 py-3 rounded';
statusDiv.innerHTML = `<p class="text-sm text-gray-700">${status}</p>`;
domainStatusContainer.appendChild(statusDiv);
});
} else {
domainStatusContainer.innerHTML = '<div class="info-box px-4 py-3 rounded"><p class="text-sm text-gray-700">Statut non disponible</p></div>';
}
// Raw Data
document.getElementById('rawData').textContent = JSON.stringify(data.raw, null, 2) || 'Aucune donnée brute disponible';
}
// Format date for
</script>
</html>