实现python的socket.gethostbynam

2024-10-01 09:33:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想实现python的socket.gethostbyname

我试图理解源代码(https://github.com/python/cpython/blob/67e1478dba6efe60b8e1890192014b8b06dd6bd9/Modules/socketmodule.c),但没有真正了解它是如何工作的,我应该如何实现它

/*ARGSUSED*/
static PyObject *
socket_gethostbyname(PyObject *self, PyObject *args)
{
    char *name;
    sock_addr_t addrbuf;
    PyObject *ret = NULL;

    if (!PyArg_ParseTuple(args, "et:gethostbyname", "idna", &name))
        return NULL;
    if (setipaddr(name, SAS2SA(&addrbuf),  sizeof(addrbuf), AF_INET) < 0)
        goto finally;
    ret = makeipaddr(SAS2SA(&addrbuf), sizeof(struct sockaddr_in));
finally:
    PyMem_Free(name);
    return ret;
}

Tags: namehttpsreturnif源代码argssocketnull