checkdnsrr всегда возвращает false на окнах

copy2(src,dst) часто более полезно, чем copyfile(src,dst) потому что:

  • это позволяет dst быть каталог (вместо полного целевого имени файла), в этом случае , базовое имя из src используется для создания нового файла;
  • это сохраняет исходную модификацию и информацию о доступе (mtime и atime) в метаданных файла (однако, это идет с небольшими издержками).

Вот короткий пример:

import shutil
shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename given
shutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext

6
задан hakre 18 April 2013 в 16:23
поделиться

2 ответа

Решение, не очень питоническое, но работающее. Как указал Леннарт Регебро, вы должны использовать специальный случай для d_dict.

class Token(object):

    def __init__(self):
        super(Token,self).__setattr__('d_dict', {})

    def __getattr__(self,name):
        return self.a[name]

    def __setattr__(self,name,value):
        self.a[name] = value

Вам необходимо использовать новые классы стилей.

Может ли проблема быть вызвана тем, что test.com преобразуется в IP, но не имеет записи MX? Или что-то вроде этого?


Может быть: когда я использую dns_get_record для проверки записей MX DNS, у меня нет результата для test.com:

array(0) {
}

Но у меня есть два для паскаль-мартина. fr:

array(2) {
  [0]=>
  array(6) {
    ["host"]=>
    string(16) "pascal-martin.fr"
    ["type"]=>
    string(2) "MX"
    ["pri"]=>
    int(100)
    ["target"]=>
    string(11) "mxb.ovh.net"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(14481)
  }
  [1]=>
  array(6) {
    ["host"]=>
    string(16) "pascal-martin.fr"
    ["type"]=>
    string(2) "MX"
    ["pri"]=>
    int(1)
    ["target"]=>
    string(11) "mx0.ovh.net"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(14481)
  }
}


Ну, я действительно не знаю "почему" ... Но, по крайней мере, вот несколько указателей ...

Я не могу найти ничего другого в документации php; Итак, я не знаю, предполагалось это поведение или нет: - (

В любом случае: удачи!



РЕДАКТИРОВАТЬ: ну, действительно может быть какая-то проблема под Windows, потому что, когда я пытаюсь с Linux, я get:

Для test.com:

$ php temp.php
  Type = A : bool(true)
  Type = MX : bool(false)
  Type = NS : bool(true)
  Type = SOA : bool(true)
  Type = PTR : bool(false)
  Type = CNAME : bool(false)
  Type = AAAA : bool(false)
  Type = A6 : bool(false)
  Type = SRV : bool(false)
  Type = NAPTR : bool(false)
  Type = TXT : bool(false)
  Type = ANY : bool(true)

И для pascal-martin.fr:

$ php temp.php
  Type = A : bool(true)
  Type = MX : bool(true)
  Type = NS : bool(true)
  Type = SOA : bool(true)
  Type = PTR : bool(false)
  Type = CNAME : bool(false)
  Type = AAAA : bool(false)
  Type = A6 : bool(false)
  Type = SRV : bool(false)
  Type = NAPTR : bool(false)
  Type = TXT : bool(false)
  Type = ANY : bool(true)

Итак, не одно и то же (всегда верно или всегда неверно) Я получил в Windows .. .

Может там что-то вроде, на окнах,
(Просто действительно дикая догадка ^^)

3
ответ дан 17 December 2019 в 18:18
поделиться

Эта функция недоступна в версиях PHP для Windows до версии 5.3.0

Для получения информации см. Журнал изменений на странице руководства php.net для checkdnsrr на странице . Также проверьте комментарии на предмет замен.

0
ответ дан 17 December 2019 в 18:18
поделиться