From bacaaa291f8f460e930cec58ef92ebff43ea6c99 Mon Sep 17 00:00:00 2001 From: Yogesh Ojha Date: Tue, 14 Jun 2022 23:08:26 +0530 Subject: [PATCH] Updated whois model --- .../migrations/0012_auto_20220614_1738.py | 209 ++++++++++++++++++ web/targetApp/models.py | 73 ++++-- 2 files changed, 258 insertions(+), 24 deletions(-) create mode 100644 web/targetApp/migrations/0012_auto_20220614_1738.py diff --git a/web/targetApp/migrations/0012_auto_20220614_1738.py b/web/targetApp/migrations/0012_auto_20220614_1738.py new file mode 100644 index 00000000..54fdb63e --- /dev/null +++ b/web/targetApp/migrations/0012_auto_20220614_1738.py @@ -0,0 +1,209 @@ +# Generated by Django 3.2.4 on 2022-06-14 17:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('targetApp', '0011_domaininfo_date_expiration'), + ] + + operations = [ + migrations.CreateModel( + name='DomainAddress', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=500)), + ], + ), + migrations.CreateModel( + name='DomainCity', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='DomainCountry', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=20)), + ], + ), + migrations.CreateModel( + name='DomainEmail', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=500)), + ], + ), + migrations.CreateModel( + name='DomainFax', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='DomainPhone', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='DomainRegisterName', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=500)), + ], + ), + migrations.CreateModel( + name='DomainRegisterOrganization', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=500)), + ], + ), + migrations.CreateModel( + name='DomainState', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=50)), + ], + ), + migrations.CreateModel( + name='DomainZipCode', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(max_length=20)), + ], + ), + migrations.CreateModel( + name='NameServers', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False)), + ('name', models.CharField(blank=True, max_length=500, null=True)), + ], + ), + migrations.RemoveField( + model_name='whoisdetail', + name='registrant', + ), + migrations.RemoveField( + model_name='domaininfo', + name='date_created', + ), + migrations.RemoveField( + model_name='domaininfo', + name='date_expiration', + ), + migrations.RemoveField( + model_name='domaininfo', + name='domain_age', + ), + migrations.RemoveField( + model_name='domaininfo', + name='email_association_href', + ), + migrations.RemoveField( + model_name='domaininfo', + name='geolocation', + ), + migrations.RemoveField( + model_name='domaininfo', + name='geolocation_iso', + ), + migrations.RemoveField( + model_name='domaininfo', + name='ip_address', + ), + migrations.RemoveField( + model_name='domaininfo', + name='is_private', + ), + migrations.RemoveField( + model_name='domaininfo', + name='nameserver_history', + ), + migrations.RemoveField( + model_name='domaininfo', + name='nameserver_record', + ), + migrations.RemoveField( + model_name='domaininfo', + name='organization_association_href', + ), + migrations.RemoveField( + model_name='domaininfo', + name='whois', + ), + migrations.AddField( + model_name='domaininfo', + name='raw_text', + field=models.CharField(blank=True, max_length=10000, null=True), + ), + migrations.DeleteModel( + name='NameServerHistory', + ), + migrations.DeleteModel( + name='NSRecord', + ), + migrations.DeleteModel( + name='RegistrantInfo', + ), + migrations.DeleteModel( + name='WhoisDetail', + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_address', + field=models.ManyToManyField(blank=True, to='targetApp.DomainAddress'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_city', + field=models.ManyToManyField(blank=True, to='targetApp.DomainCity'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_country', + field=models.ManyToManyField(blank=True, to='targetApp.DomainCountry'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_email', + field=models.ManyToManyField(blank=True, to='targetApp.DomainEmail'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_fax', + field=models.ManyToManyField(blank=True, to='targetApp.DomainFax'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_name', + field=models.ManyToManyField(blank=True, to='targetApp.DomainRegisterName'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_organization', + field=models.ManyToManyField(blank=True, to='targetApp.DomainRegisterOrganization'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_phone', + field=models.ManyToManyField(blank=True, to='targetApp.DomainPhone'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_state', + field=models.ManyToManyField(blank=True, to='targetApp.DomainState'), + ), + migrations.AddField( + model_name='domaininfo', + name='registrant_zip_code', + field=models.ManyToManyField(blank=True, to='targetApp.DomainZipCode'), + ), + ] diff --git a/web/targetApp/models.py b/web/targetApp/models.py index 7e187535..c5166061 100644 --- a/web/targetApp/models.py +++ b/web/targetApp/models.py @@ -27,47 +27,72 @@ class NameServers(models.Model): name = models.CharField(max_length=500, null=True, blank=True) -class RegistrarCommonModel(models.Model): +class DomainRegisterName(models.Model): id = models.AutoField(primary_key=True) - name = models.CharField(max_length=500, null=True, blank=True) - organization = models.CharField(max_length=500, null=True, blank=True) - address = models.CharField(max_length=700, null=True, blank=True) - city = models.CharField(max_length=300, null=True, blank=True) - state = models.CharField(max_length=100, null=True, blank=True) - zip_code = models.CharField(max_length=50, null=True, blank=True) - country = models.CharField(max_length=50, null=True, blank=True) - email = models.CharField(max_length=500, null=True, blank=True) - phone = models.CharField(max_length=100, null=True, blank=True) - fax = models.CharField(max_length=100, null=True, blank=True) + name = models.CharField(max_length=500) -class DomainRegistrant(models.Model): +class DomainRegisterOrganization(models.Model): id = models.AutoField(primary_key=True) - registrant = models.ManyToManyField(RegistrarCommonModel, blank=True) + name = models.CharField(max_length=500) -class DomainAdmin(models.Model): +class DomainAddress(models.Model): id = models.AutoField(primary_key=True) - registrant = models.ManyToManyField(RegistrarCommonModel, blank=True) + name = models.CharField(max_length=500) -class DomainTechnicalContact(models.Model): +class DomainCity(models.Model): id = models.AutoField(primary_key=True) - registrant = models.ManyToManyField(RegistrarCommonModel, blank=True) + name = models.CharField(max_length=100) -class DomainAbuse(models.Model): +class DomainState(models.Model): id = models.AutoField(primary_key=True) - email = models.CharField(max_length=500, null=True, blank=True) - telephone = models.CharField(max_length=100, null=True, blank=True) + name = models.CharField(max_length=50) + + +class DomainZipCode(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(max_length=20) + + +class DomainCountry(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(max_length=20) + + +class DomainEmail(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(max_length=500) + + +class DomainPhone(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(max_length=100) + + +class DomainFax(models.Model): + id = models.AutoField(primary_key=True) + name = models.CharField(max_length=100) class DomainInfo(models.Model): id = models.AutoField(primary_key=True) - whois_raw_text = models.CharField(max_length=10000, null=True, blank=True) - registrant = models.ManyToManyField(DomainRegistrant, blank=True) - admin = models.ManyToManyField(DomainAdmin, blank=True) - tech = models.ManyToManyField(DomainTechnicalContact, blank=True) + raw_text = models.CharField(max_length=10000, null=True, blank=True) + + # registrant + registrant_name = models.ManyToManyField(DomainRegisterName, blank=True) + registrant_organization = models.ManyToManyField(DomainRegisterOrganization, blank=True) + registrant_address = models.ManyToManyField(DomainAddress, blank=True) + registrant_city = models.ManyToManyField(DomainCity, blank=True) + registrant_state = models.ManyToManyField(DomainState, blank=True) + registrant_zip_code = models.ManyToManyField(DomainZipCode, blank=True) + registrant_country = models.ManyToManyField(DomainCountry, blank=True) + registrant_email = models.ManyToManyField(DomainEmail, blank=True) + registrant_phone = models.ManyToManyField(DomainPhone, blank=True) + registrant_fax = models.ManyToManyField(DomainFax, blank=True) + associated_domains = models.ManyToManyField(AssociatedDomain, blank=True) related_tlds = models.ManyToManyField(RelatedTLD, blank=True)