Программное получение цен на домен и хостинг с примерами кода

Чтобы программно получить цены на домен и хостинг, вы можете использовать различные методы в зависимости от регистратора домена или хостинг-провайдера, с которым вы хотите работать. Вот несколько примеров с использованием популярных провайдеров:

  1. GoDaddy (документация API: https://developer.godaddy.com/ )
import requests
def get_domain_price(domain_name):
    url = f'https://api.godaddy.com/v1/domains/available?domain={domain_name}'
    response = requests.get(url)
    data = response.json()
    price = data['price']
    return price
domain = 'example.com'
price = get_domain_price(domain)
print(f"The price for {domain} is {price}")
  1. Namecheap (документация API: https://www.namecheap.com/support/api/ )
import requests
def get_domain_price(domain_name):
    url = f'https://api.namecheap.com/xml.response?ApiUser=YOUR_USERNAME&ApiKey=YOUR_API_KEY&UserName=YOUR_USERNAME&Command=namecheap.domains.check&DomainList={domain_name}'
    response = requests.get(url)
    # Parse the XML response to extract the price
    # ...
domain = 'example.com'
price = get_domain_price(domain)
print(f"The price for {domain} is {price}")
  1. Веб-сервисы Amazon (AWS) Route 53 (документация API: https://docs.aws.amazon.com/Route53/latest/APIReference/Welcome.html )
import boto3
def get_domain_price(domain_name):
    client = boto3.client('route53')
    response = client.list_pricing(ServiceCode='AmazonRoute53', Filters=[{'Field': 'productFamily', 'Type': 'TERM_MATCH', 'Value': 'Domain Registration'}])
    prices = response['Prices']
    for price in prices:
        if price['Attributes']['domainName'] == domain_name:
            return price['PricePerUnit']['USD']
domain = 'example.com'
price = get_domain_price(domain)
print(f"The price for {domain} is {price}")

Цены на хостинг могут различаться в зависимости от хостинг-провайдера. Вот пример использования AWS EC2 (документация API: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html ):

import boto3
def get_hosting_price(instance_type):
    client = boto3.client('ec2')
    response = client.describe_instance_types(InstanceTypes=[instance_type])
    prices = response['InstanceTypes'][0]['InstanceTypeDetails'][0]['EbsInfo']['EbsOptimizedInfo']['DefaultEbsOptimized']
    return prices
instance_type = 't2.micro'
price = get_hosting_price(instance_type)
print(f"The price for hosting a {instance_type} instance is {price}")