LLabelFen
İş akışları

Kodlama iş akışları · Geri işaretçili DNS adları

03
Ürün

İş akışları

En fazla 65535 baytlık paketten DNS adını çözerek ham etiketlerle sonraki konumu döndürün. Kökü, kesilmeyi ve 255 baytlık açılmış ad sınırını test edip geçersiz etiketleri, döngüleri ve geriye gitmeyen işaretçileri reddedin.

01

Uygulamayı indirin

Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.

02

Proje klasörünü açın

Uyumlu bir endpoint seçin. Kullanılabilir araçlar ve yanıt kalitesi, yapılandırılan modele ve sunucuya bağlıdır.

03

Modeli bağlayıp test edin

Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.

04

Değişiklikleri inceleyip testleri çalıştırın

Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.

Geri işaretçili DNS adları

İş akışları
def dns_name(data, offset):
    if type(data) is not bytes or len(data) > 65535 or type(offset) is not int or not 0 <= offset < len(data):
        raise ValueError("dns.input")
    labels, seen, pos, end, size = [], set(), offset, None, 1
    while True:
        if pos in seen or pos >= len(data):
            raise ValueError("dns.pointer")
        seen.add(pos)
        count = data[pos]
        if count & 192 == 192:
            if pos+1 >= len(data):
                raise ValueError("dns.truncated")
            target = ((count & 63) << 8) | data[pos+1]
            if target >= pos:
                raise ValueError("dns.forward")
            if end is None:
                end = pos+2
            pos = target
            continue
        if count & 192 or pos+1+count > len(data):
            raise ValueError("dns.label")
        pos += 1
        if count == 0:
            return labels, pos if end is None else end
        size += count+1
        if size > 255:
            raise ValueError("dns.length")
        labels.append(data[pos:pos+count])
        pos += count

Uygulamadan önce inceleyin. Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.

Yapay zekâ ile kod çalışma alanı

Bir sonraki fikriniz burada başlar.

Windows için indir ↗