diff --git a/DrissionPage/chromium_base.py b/DrissionPage/chromium_base.py
index ded7f40..d69eb48 100644
--- a/DrissionPage/chromium_base.py
+++ b/DrissionPage/chromium_base.py
@@ -1004,7 +1004,12 @@ class ChromiumBaseSetter(object):
         result_cookies = []
         for cookie in cookies:
             if not cookie.get('domain', None):
-                cookie['domain'] = urlparse(self._page.url).netloc
+                netloc = urlparse(self._page.url).netloc
+                if netloc.replace('.', '').isdigit():  # ip
+                    cookie['domain'] = netloc
+                else:  # 域名
+                    u = netloc.split('.')
+                    cookie['domain'] = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
             result_cookies.append({'value': '' if cookie['value'] is None else cookie['value'],
                                    'name': cookie['name'],
                                    'domain': cookie['domain']})
diff --git a/DrissionPage/chromium_tab.py b/DrissionPage/chromium_tab.py
index 61aca56..885a2d6 100644
--- a/DrissionPage/chromium_tab.py
+++ b/DrissionPage/chromium_tab.py
@@ -291,7 +291,7 @@ class WebPageTab(SessionPage, ChromiumTab):
             domain = netloc
         else:  # 域名
             u = netloc.split('.')
-            domain = f'{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
+            domain = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
         cookies = []
         for cookie in super().get_cookies():
             if not cookie.get('domain', None):
diff --git a/DrissionPage/commons/tools.py b/DrissionPage/commons/tools.py
index c3e942d..1a70f15 100644
--- a/DrissionPage/commons/tools.py
+++ b/DrissionPage/commons/tools.py
@@ -120,6 +120,7 @@ def port_is_using(ip, port):
     """
     from socket import socket, AF_INET, SOCK_STREAM
     s = socket(AF_INET, SOCK_STREAM)
+    s.settimeout(.1)
     result = s.connect_ex((ip, int(port)))
     s.close()
     return result == 0
diff --git a/DrissionPage/mixpage/drission.py b/DrissionPage/mixpage/drission.py
index 540b3f9..813caa0 100644
--- a/DrissionPage/mixpage/drission.py
+++ b/DrissionPage/mixpage/drission.py
@@ -272,7 +272,7 @@ class Drission(object):
                             cookie_domain = browser_domain
                         else:  # 域名
                             u = browser_domain.split('.')
-                            cookie_domain = f'{u[-2]}.{u[-1]}' if len(u) > 1 else browser_domain
+                            cookie_domain = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else browser_domain
                     else:
                         raise ValueError('cookie中没有域名或浏览器未访问过URL。')
 
@@ -336,7 +336,7 @@ class Drission(object):
             domain = ex_url
         else:  # 域名
             u = ex_url.split('.')
-            domain = f'{u[-2]}.{u[-1]}' if len(u) > 1 else ex_url
+            domain = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else ex_url
 
         cookies = []
         for cookie in self.session.cookies:
diff --git a/DrissionPage/mixpage/session_page.py b/DrissionPage/mixpage/session_page.py
index 427072c..fbedcf8 100644
--- a/DrissionPage/mixpage/session_page.py
+++ b/DrissionPage/mixpage/session_page.py
@@ -215,7 +215,7 @@ class SessionPage(BasePage):
                     domain = netloc
                 else:  # 域名
                     u = netloc.split('.')
-                    domain = f'{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
+                    domain = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
                 cookies = tuple(x for x in self.session.cookies if domain in x.domain or x.domain == '')
             else:
                 cookies = tuple(x for x in self.session.cookies)
diff --git a/DrissionPage/session_page.py b/DrissionPage/session_page.py
index f09d6f1..d6d9414 100644
--- a/DrissionPage/session_page.py
+++ b/DrissionPage/session_page.py
@@ -195,7 +195,7 @@ class SessionPage(BasePage):
                     domain = netloc
                 else:  # 域名
                     u = netloc.split('.')
-                    domain = f'{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
+                    domain = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
                 cookies = tuple(x for x in self.session.cookies if domain in x.domain or x.domain == '')
             else:
                 cookies = tuple(x for x in self.session.cookies)
diff --git a/DrissionPage/web_page.py b/DrissionPage/web_page.py
index aede90a..2a853c0 100644
--- a/DrissionPage/web_page.py
+++ b/DrissionPage/web_page.py
@@ -365,7 +365,7 @@ class WebPage(SessionPage, ChromiumPage, BasePage):
             domain = netloc
         else:  # 域名
             u = netloc.split('.')
-            domain = f'{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
+            domain = f'.{u[-2]}.{u[-1]}' if len(u) > 1 else netloc
         cookies = []
         for cookie in super().get_cookies():
             if not cookie.get('domain', None):