diff --git a/.github/update.log b/.github/update.log index f51ed1f664..9a7e5076da 100644 --- a/.github/update.log +++ b/.github/update.log @@ -1118,3 +1118,4 @@ Update On Mon Sep 8 20:41:03 CEST 2025 Update On Tue Sep 9 20:33:51 CEST 2025 Update On Wed Sep 10 20:42:57 CEST 2025 Update On Thu Sep 11 20:34:24 CEST 2025 +Update On Fri Sep 12 20:36:01 CEST 2025 diff --git a/clash-meta/adapter/outbound/shadowsocks.go b/clash-meta/adapter/outbound/shadowsocks.go index 595ef0e5e8..6ed737b82b 100644 --- a/clash-meta/adapter/outbound/shadowsocks.go +++ b/clash-meta/adapter/outbound/shadowsocks.go @@ -11,6 +11,7 @@ import ( "github.com/metacubex/mihomo/component/dialer" "github.com/metacubex/mihomo/component/proxydialer" C "github.com/metacubex/mihomo/constant" + "github.com/metacubex/mihomo/ntp" gost "github.com/metacubex/mihomo/transport/gost-plugin" "github.com/metacubex/mihomo/transport/restls" obfs "github.com/metacubex/mihomo/transport/simple-obfs" @@ -251,8 +252,9 @@ func (ss *ShadowSocks) SupportUOT() bool { func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error) { addr := net.JoinHostPort(option.Server, strconv.Itoa(option.Port)) - method, err := shadowsocks.CreateMethod(context.Background(), option.Cipher, shadowsocks.MethodOptions{ + method, err := shadowsocks.CreateMethod(option.Cipher, shadowsocks.MethodOptions{ Password: option.Password, + TimeFunc: ntp.Now, }) if err != nil { return nil, fmt.Errorf("ss %s cipher: %s initialize error: %w", addr, option.Cipher, err) diff --git a/clash-meta/adapter/provider/provider.go b/clash-meta/adapter/provider/provider.go index 3c73d36140..2f71b41bb1 100644 --- a/clash-meta/adapter/provider/provider.go +++ b/clash-meta/adapter/provider/provider.go @@ -331,15 +331,22 @@ func (cp *CompatibleProvider) Close() error { } func NewProxiesParser(filter string, excludeFilter string, excludeType string, dialerProxy string, override OverrideSchema) (resource.Parser[[]C.Proxy], error) { - excludeFilterReg, err := regexp2.Compile(excludeFilter, regexp2.None) - if err != nil { - return nil, fmt.Errorf("invalid excludeFilter regex: %w", err) - } var excludeTypeArray []string if excludeType != "" { excludeTypeArray = strings.Split(excludeType, "|") } + var excludeFilterRegs []*regexp2.Regexp + if excludeFilter != "" { + for _, excludeFilter := range strings.Split(excludeFilter, "`") { + excludeFilterReg, err := regexp2.Compile(excludeFilter, regexp2.None) + if err != nil { + return nil, fmt.Errorf("invalid excludeFilter regex: %w", err) + } + excludeFilterRegs = append(excludeFilterRegs, excludeFilterReg) + } + } + var filterRegs []*regexp2.Regexp for _, filter := range strings.Split(filter, "`") { filterReg, err := regexp2.Compile(filter, regexp2.None) @@ -367,8 +374,9 @@ func NewProxiesParser(filter string, excludeFilter string, excludeType string, d proxies := []C.Proxy{} proxiesSet := map[string]struct{}{} for _, filterReg := range filterRegs { + LOOP1: for idx, mapping := range schema.Proxies { - if nil != excludeTypeArray && len(excludeTypeArray) > 0 { + if len(excludeTypeArray) > 0 { mType, ok := mapping["type"] if !ok { continue @@ -377,18 +385,11 @@ func NewProxiesParser(filter string, excludeFilter string, excludeType string, d if !ok { continue } - flag := false - for i := range excludeTypeArray { - if strings.EqualFold(pType, excludeTypeArray[i]) { - flag = true - break + for _, excludeType := range excludeTypeArray { + if strings.EqualFold(pType, excludeType) { + continue LOOP1 } - } - if flag { - continue - } - } mName, ok := mapping["name"] if !ok { @@ -398,9 +399,11 @@ func NewProxiesParser(filter string, excludeFilter string, excludeType string, d if !ok { continue } - if len(excludeFilter) > 0 { - if mat, _ := excludeFilterReg.MatchString(name); mat { - continue + if len(excludeFilterRegs) > 0 { + for _, excludeFilterReg := range excludeFilterRegs { + if mat, _ := excludeFilterReg.MatchString(name); mat { + continue LOOP1 + } } } if len(filter) > 0 { diff --git a/clash-meta/go.mod b/clash-meta/go.mod index a71c365f1f..a8bdd1fbeb 100644 --- a/clash-meta/go.mod +++ b/clash-meta/go.mod @@ -24,13 +24,13 @@ require ( github.com/metacubex/quic-go v0.54.1-0.20250730114134-a1ae705fe295 github.com/metacubex/randv2 v0.2.0 github.com/metacubex/restls-client-go v0.1.7 - github.com/metacubex/sing v0.5.6-0.20250904143031-f1a62fab1489 + github.com/metacubex/sing v0.5.6-0.20250912172506-82b42a287539 github.com/metacubex/sing-mux v0.3.3 github.com/metacubex/sing-quic v0.0.0-20250909002258-06122df8f231 github.com/metacubex/sing-shadowsocks v0.2.12 - github.com/metacubex/sing-shadowsocks2 v0.2.6 + github.com/metacubex/sing-shadowsocks2 v0.2.7 github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2 - github.com/metacubex/sing-tun v0.4.8-0.20250910070000-df2c1a4be299 + github.com/metacubex/sing-tun v0.4.8-0.20250912172659-89eba941fb22 github.com/metacubex/sing-vmess v0.2.4-0.20250908094854-bc8e2a88b115 github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f github.com/metacubex/smux v0.0.0-20250503055512-501391591dee diff --git a/clash-meta/go.sum b/clash-meta/go.sum index 5390a1ef10..b30499f3c2 100644 --- a/clash-meta/go.sum +++ b/clash-meta/go.sum @@ -117,20 +117,20 @@ github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFq github.com/metacubex/restls-client-go v0.1.7 h1:eCwiXCTQb5WJu9IlgYvDBA1OgrINv58dEe7hcN5H15k= github.com/metacubex/restls-client-go v0.1.7/go.mod h1:BN/U52vPw7j8VTSh2vleD/MnmVKCov84mS5VcjVHH4g= github.com/metacubex/sing v0.5.2/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= -github.com/metacubex/sing v0.5.6-0.20250904143031-f1a62fab1489 h1:jKOFzhHTbxqhCluh5ONxjDe6CJMNHvgniXAf1RWuzlE= -github.com/metacubex/sing v0.5.6-0.20250904143031-f1a62fab1489/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= +github.com/metacubex/sing v0.5.6-0.20250912172506-82b42a287539 h1:ArXEdw7JvbL3dLc3D7kBGTDmuBBI/sNIyR3O4MlfPH8= +github.com/metacubex/sing v0.5.6-0.20250912172506-82b42a287539/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= github.com/metacubex/sing-mux v0.3.3 h1:oqCbUAJgTLsa71vfo8otW8xIhrDfbc/Y2rmtW34sQjg= github.com/metacubex/sing-mux v0.3.3/go.mod h1:3rt1soewn0O6j89GCLmwAQFsq257u0jf2zQSPhTL3Bw= github.com/metacubex/sing-quic v0.0.0-20250909002258-06122df8f231 h1:dGvo7UahC/gYBQNBoictr14baJzBjAKUAorP63QFFtg= github.com/metacubex/sing-quic v0.0.0-20250909002258-06122df8f231/go.mod h1:B60FxaPHjR1SeQB0IiLrgwgvKsaoASfOWdiqhLjmMGA= github.com/metacubex/sing-shadowsocks v0.2.12 h1:Wqzo8bYXrK5aWqxu/TjlTnYZzAKtKsaFQBdr6IHFaBE= github.com/metacubex/sing-shadowsocks v0.2.12/go.mod h1:2e5EIaw0rxKrm1YTRmiMnDulwbGxH9hAFlrwQLQMQkU= -github.com/metacubex/sing-shadowsocks2 v0.2.6 h1:ZR1kYT0f0Vi64iQSS09OdhFfppiNkh7kjgRdMm0SB98= -github.com/metacubex/sing-shadowsocks2 v0.2.6/go.mod h1:vOEbfKC60txi0ca+yUlqEwOGc3Obl6cnSgx9Gf45KjE= +github.com/metacubex/sing-shadowsocks2 v0.2.7 h1:hSuuc0YpsfiqYqt1o+fP4m34BQz4e6wVj3PPBVhor3A= +github.com/metacubex/sing-shadowsocks2 v0.2.7/go.mod h1:vOEbfKC60txi0ca+yUlqEwOGc3Obl6cnSgx9Gf45KjE= github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2 h1:gXU+MYPm7Wme3/OAY2FFzVq9d9GxPHOqu5AQfg/ddhI= github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2/go.mod h1:mbfboaXauKJNIHJYxQRa+NJs4JU9NZfkA+I33dS2+9E= -github.com/metacubex/sing-tun v0.4.8-0.20250910070000-df2c1a4be299 h1:ytXxmMPndWV0w+yHMwVXjx6CO9AzFdZ1VE0VIjoGjZU= -github.com/metacubex/sing-tun v0.4.8-0.20250910070000-df2c1a4be299/go.mod h1:e4AyoGUrhiKQjRio3npn87E4TmIk7X5LmeiRwZettUA= +github.com/metacubex/sing-tun v0.4.8-0.20250912172659-89eba941fb22 h1:A/FVt2fbZ1a6elVOP/e3X/1ww7/vvzN5wdS1DJd6Ti8= +github.com/metacubex/sing-tun v0.4.8-0.20250912172659-89eba941fb22/go.mod h1:e4AyoGUrhiKQjRio3npn87E4TmIk7X5LmeiRwZettUA= github.com/metacubex/sing-vmess v0.2.4-0.20250908094854-bc8e2a88b115 h1:Idk4GoB44BNN1cbjmV5aFHDXjRoV2taSgQypjCEemGM= github.com/metacubex/sing-vmess v0.2.4-0.20250908094854-bc8e2a88b115/go.mod h1:21R5R1u90uUvBQF0owoooEu96/SAYYD56nDrwm6nFaM= github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f h1:Sr/DYKYofKHKc4GF3qkRGNuj6XA6c0eqPgEDN+VAsYU= diff --git a/clash-meta/hub/executor/executor.go b/clash-meta/hub/executor/executor.go index c6bef52523..fcf176e0e0 100644 --- a/clash-meta/hub/executor/executor.go +++ b/clash-meta/hub/executor/executor.go @@ -231,6 +231,8 @@ func updateNTP(c *config.NTP) { c.DialerProxy, c.WriteToSystem, ) + } else { + ntp.ReCreateNTPService("", 0, "", false) } } diff --git a/clash-meta/ntp/service.go b/clash-meta/ntp/service.go index 6fb7453e29..0817b9f00d 100644 --- a/clash-meta/ntp/service.go +++ b/clash-meta/ntp/service.go @@ -3,6 +3,7 @@ package ntp import ( "context" "sync" + "sync/atomic" "time" "github.com/metacubex/mihomo/component/dialer" @@ -13,8 +14,8 @@ import ( "github.com/metacubex/sing/common/ntp" ) -var offset time.Duration -var service *Service +var globalSrv atomic.Pointer[Service] +var globalMu sync.Mutex type Service struct { server M.Socksaddr @@ -22,15 +23,22 @@ type Service struct { ticker *time.Ticker ctx context.Context cancel context.CancelFunc - mu sync.Mutex + mu sync.RWMutex + offset time.Duration syncSystemTime bool running bool } func ReCreateNTPService(server string, interval time.Duration, dialerProxy string, syncSystemTime bool) { + globalMu.Lock() + defer globalMu.Unlock() + service := globalSrv.Swap(nil) if service != nil { service.Stop() } + if server == "" { + return + } ctx, cancel := context.WithCancel(context.Background()) service = &Service{ server: M.ParseSocksaddr(server), @@ -41,6 +49,7 @@ func ReCreateNTPService(server string, interval time.Duration, dialerProxy strin syncSystemTime: syncSystemTime, } service.Start() + globalSrv.Store(service) } func (srv *Service) Start() { @@ -52,57 +61,62 @@ func (srv *Service) Start() { log.Errorln("Initialize NTP time failed: %s", err) return } - service.running = true + srv.running = true go srv.loopUpdate() } func (srv *Service) Stop() { srv.mu.Lock() defer srv.mu.Unlock() - if service.running { + if srv.running { srv.ticker.Stop() srv.cancel() - service.running = false + srv.running = false } } -func (srv *Service) Running() bool { +func (srv *Service) Offset() time.Duration { if srv == nil { - return false + return 0 } - srv.mu.Lock() - defer srv.mu.Unlock() - return srv.running + srv.mu.RLock() + defer srv.mu.RUnlock() + if srv.running { + return srv.offset + } + return 0 } func (srv *Service) update() error { var response *ntp.Response var err error for i := 0; i < 3; i++ { - if response, err = ntp.Exchange(context.Background(), srv.dialer, srv.server); err == nil { - break + response, err = ntp.Exchange(srv.ctx, srv.dialer, srv.server) + if err != nil { + continue } - if i == 2 { - return err + offset := response.ClockOffset + if offset > time.Duration(0) { + log.Infoln("System clock is ahead of NTP time by %s", offset) + } else if offset < time.Duration(0) { + log.Infoln("System clock is behind NTP time by %s", -offset) } - } - offset = response.ClockOffset - if offset > time.Duration(0) { - log.Infoln("System clock is ahead of NTP time by %s", offset) - } else if offset < time.Duration(0) { - log.Infoln("System clock is behind NTP time by %s", -offset) - } - if srv.syncSystemTime { - timeNow := response.Time - syncErr := setSystemTime(timeNow) - if syncErr == nil { - log.Infoln("Sync system time success: %s", timeNow.Local().Format(ntp.TimeLayout)) - } else { - log.Errorln("Write time to system: %s", syncErr) - srv.syncSystemTime = false + srv.mu.Lock() + srv.offset = offset + srv.mu.Unlock() + if srv.syncSystemTime { + timeNow := response.Time + syncErr := setSystemTime(timeNow) + if syncErr == nil { + log.Infoln("Sync system time success: %s", timeNow.Local().Format(ntp.TimeLayout)) + } else { + log.Errorln("Write time to system: %s", syncErr) + srv.syncSystemTime = false + } } + return nil } - return nil + return err } func (srv *Service) loopUpdate() { @@ -121,7 +135,7 @@ func (srv *Service) loopUpdate() { func Now() time.Time { now := time.Now() - if service.Running() && offset.Abs() > 0 { + if offset := globalSrv.Load().Offset(); offset.Abs() > 0 { now = now.Add(offset) } return now diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json index eeeeedc87f..d11b920d02 100644 --- a/clash-nyanpasu/manifest/version.json +++ b/clash-nyanpasu/manifest/version.json @@ -2,7 +2,7 @@ "manifest_version": 1, "latest": { "mihomo": "v1.19.13", - "mihomo_alpha": "alpha-7061c5a", + "mihomo_alpha": "alpha-909729c", "clash_rs": "v0.9.0", "clash_premium": "2023-09-05-gdcc8d87", "clash_rs_alpha": "0.9.0-alpha+sha.50f295d" @@ -69,5 +69,5 @@ "linux-armv7hf": "clash-armv7-unknown-linux-gnueabihf" } }, - "updated_at": "2025-09-10T22:20:55.939Z" + "updated_at": "2025-09-11T22:20:53.894Z" } diff --git a/hysteria/app/internal/redirect/getsockopt_linux.go b/hysteria/app/internal/redirect/getsockopt_linux.go index b84593e0c2..c06c30a1f3 100644 --- a/hysteria/app/internal/redirect/getsockopt_linux.go +++ b/hysteria/app/internal/redirect/getsockopt_linux.go @@ -13,5 +13,5 @@ func getsockopt(s, level, name uintptr, val unsafe.Pointer, vallen *uint32) (err if e != 0 { err = e } - return + return err } diff --git a/hysteria/app/internal/redirect/getsockopt_linux_386.go b/hysteria/app/internal/redirect/getsockopt_linux_386.go index f3832ec781..540e6d3ba0 100644 --- a/hysteria/app/internal/redirect/getsockopt_linux_386.go +++ b/hysteria/app/internal/redirect/getsockopt_linux_386.go @@ -19,5 +19,5 @@ func getsockopt(s, level, name uintptr, val unsafe.Pointer, vallen *uint32) (err if e != 0 { err = e } - return + return err } diff --git a/hysteria/app/internal/sockopts/sockopts.go b/hysteria/app/internal/sockopts/sockopts.go index 14ee0c019f..a2305cb509 100644 --- a/hysteria/app/internal/sockopts/sockopts.go +++ b/hysteria/app/internal/sockopts/sockopts.go @@ -42,15 +42,15 @@ func (e *UnsupportedError) Error() string { func (o *SocketOptions) ListenUDP() (uconn net.PacketConn, err error) { uconn, err = net.ListenUDP("udp", nil) if err != nil { - return + return uconn, err } err = o.applyToUDPConn(uconn.(*net.UDPConn)) if err != nil { uconn.Close() uconn = nil - return + return uconn, err } - return + return uconn, err } func (o *SocketOptions) applyToUDPConn(c *net.UDPConn) error { diff --git a/hysteria/app/internal/sockopts/sockopts_linux.go b/hysteria/app/internal/sockopts/sockopts_linux.go index d1e5d23c88..6ec7cf945d 100644 --- a/hysteria/app/internal/sockopts/sockopts_linux.go +++ b/hysteria/app/internal/sockopts/sockopts_linux.go @@ -24,19 +24,19 @@ func init() { func controlUDPConn(c *net.UDPConn, cb func(fd int) error) (err error) { rconn, err := c.SyscallConn() if err != nil { - return + return err } cerr := rconn.Control(func(fd uintptr) { err = cb(int(fd)) }) if err != nil { - return + return err } if cerr != nil { err = fmt.Errorf("failed to control fd: %w", cerr) - return + return err } - return + return err } func bindInterfaceImpl(c *net.UDPConn, device string) error { diff --git a/hysteria/app/internal/sockopts/sockopts_linux_test.go b/hysteria/app/internal/sockopts/sockopts_linux_test.go index 66614a4c7a..74dc30f92a 100644 --- a/hysteria/app/internal/sockopts/sockopts_linux_test.go +++ b/hysteria/app/internal/sockopts/sockopts_linux_test.go @@ -42,12 +42,12 @@ func Test_fdControlUnixSocketImpl(t *testing.T) { err = controlUDPConn(conn.(*net.UDPConn), func(fd int) (err error) { rcvbuf, err := unix.GetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_RCVBUF) if err != nil { - return + return err } // The test server called setsockopt(fd, SOL_SOCKET, SO_RCVBUF, 2500), // and kernel will double this value for getsockopt(). assert.Equal(t, 5000, rcvbuf) - return + return err }) assert.NoError(t, err) } diff --git a/hysteria/app/internal/url/url.go b/hysteria/app/internal/url/url.go index c9e1bd0313..6d8d3bf808 100644 --- a/hysteria/app/internal/url/url.go +++ b/hysteria/app/internal/url/url.go @@ -1173,7 +1173,7 @@ func splitHostPort(hostPort string) (host, port string) { host = host[1 : len(host)-1] } - return + return host, port } // Marshaling interface implementations. @@ -1263,8 +1263,8 @@ func stringContainsCTLByte(s string) bool { func JoinPath(base string, elem ...string) (result string, err error) { url, err := Parse(base) if err != nil { - return + return result, err } result = url.JoinPath(elem...).String() - return + return result, err } diff --git a/hysteria/app/internal/utils/certloader.go b/hysteria/app/internal/utils/certloader.go index fb41a3c57e..ccb3954b9b 100644 --- a/hysteria/app/internal/utils/certloader.go +++ b/hysteria/app/internal/utils/certloader.go @@ -68,17 +68,17 @@ func (l *LocalCertificateLoader) checkModTime() (certModTime, keyModTime time.Ti fi, err := os.Stat(l.CertFile) if err != nil { err = fmt.Errorf("failed to stat certificate file: %w", err) - return + return certModTime, keyModTime, err } certModTime = fi.ModTime() fi, err = os.Stat(l.KeyFile) if err != nil { err = fmt.Errorf("failed to stat key file: %w", err) - return + return certModTime, keyModTime, err } keyModTime = fi.ModTime() - return + return certModTime, keyModTime, err } func (l *LocalCertificateLoader) makeCache() (cache *localCertificateCache, err error) { @@ -86,24 +86,24 @@ func (l *LocalCertificateLoader) makeCache() (cache *localCertificateCache, err c.certModTime, c.keyModTime, err = l.checkModTime() if err != nil { - return + return cache, err } cert, err := tls.LoadX509KeyPair(l.CertFile, l.KeyFile) if err != nil { - return + return cache, err } c.certificate = &cert if c.certificate.Leaf == nil { // certificate.Leaf was left nil by tls.LoadX509KeyPair before Go 1.23 c.certificate.Leaf, err = x509.ParseCertificate(cert.Certificate[0]) if err != nil { - return + return cache, err } } cache = c - return + return cache, err } func (l *LocalCertificateLoader) getCertificateWithCache() (*tls.Certificate, error) { diff --git a/hysteria/core/server/udp.go b/hysteria/core/server/udp.go index 14efc9e592..8ce79b4a2f 100644 --- a/hysteria/core/server/udp.go +++ b/hysteria/core/server/udp.go @@ -60,7 +60,7 @@ func newUDPSessionEntry( ExitFunc: exitFunc, } - return + return e } // CloseWithErr closes the session and calls ExitFunc with the given error. @@ -259,10 +259,9 @@ func (m *udpSessionManager) idleCleanupLoop(stopCh <-chan struct{}) { } func (m *udpSessionManager) cleanup(idleOnly bool) { - timeoutEntry := make([]*udpSessionEntry, 0, len(m.m)) - // We use RLock here as we are only scanning the map, not deleting from it. m.mutex.RLock() + timeoutEntry := make([]*udpSessionEntry, 0, len(m.m)) now := time.Now() for _, entry := range m.m { if !idleOnly || now.Sub(entry.Last.Get()) > m.idleTimeout { @@ -289,14 +288,14 @@ func (m *udpSessionManager) feed(msg *protocol.UDPMessage) { // Call the hook err = m.io.Hook(firstMsgData, &addr) if err != nil { - return + return conn, actualAddr, err } actualAddr = addr // Log the event m.eventLogger.New(msg.SessionID, addr) // Dial target conn, err = m.io.UDP(addr) - return + return conn, actualAddr, err } exitFunc := func(err error) { // Log the event diff --git a/hysteria/extras/obfs/conn.go b/hysteria/extras/obfs/conn.go index 461319178b..6b97592eba 100644 --- a/hysteria/extras/obfs/conn.go +++ b/hysteria/extras/obfs/conn.go @@ -64,12 +64,12 @@ func (c *obfsPacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error) { n, addr, err = c.Conn.ReadFrom(c.readBuf) if n <= 0 { c.readMutex.Unlock() - return + return n, addr, err } n = c.Obfs.Deobfuscate(c.readBuf[:n], p) c.readMutex.Unlock() if n > 0 || err != nil { - return + return n, addr, err } // Invalid packet, try again } @@ -83,7 +83,7 @@ func (c *obfsPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error) { if err == nil { n = len(p) } - return + return n, err } func (c *obfsPacketConn) Close() error { diff --git a/hysteria/extras/outbounds/ob_socks5.go b/hysteria/extras/outbounds/ob_socks5.go index d6d7add891..72dc567dbe 100644 --- a/hysteria/extras/outbounds/ob_socks5.go +++ b/hysteria/extras/outbounds/ob_socks5.go @@ -258,7 +258,7 @@ func addrExToSOCKS5Addr(addr *AddrEx) (atyp byte, dstAddr, dstPort []byte) { // Port dstPort = make([]byte, 2) binary.BigEndian.PutUint16(dstPort, addr.Port) - return + return atyp, dstAddr, dstPort } func socks5AddrToAddrEx(atyp byte, dstAddr, dstPort []byte) *AddrEx { diff --git a/hysteria/extras/outbounds/utils.go b/hysteria/extras/outbounds/utils.go index 7a693cf196..806b4274a0 100644 --- a/hysteria/extras/outbounds/utils.go +++ b/hysteria/extras/outbounds/utils.go @@ -20,7 +20,7 @@ func splitIPv4IPv6(ips []net.IP) (ipv4, ipv6 net.IP) { break } } - return + return ipv4, ipv6 } // tryParseIP tries to parse the host string in the AddrEx as an IP address. diff --git a/lede/package/kernel/r8125/Makefile b/lede/package/kernel/r8125/Makefile index 517ca19bdc..e1211653b0 100644 --- a/lede/package/kernel/r8125/Makefile +++ b/lede/package/kernel/r8125/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=r8125 -PKG_VERSION:=9.016.00 +PKG_VERSION:=9.016.01 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8125/releases/download/$(PKG_VERSION) -PKG_HASH:=cd1955dd07d2f5a6faaa210ffc4e8af992421295a32ab6ddcfa759bed9eba922 +PKG_HASH:=5434b26500538a62541c55cd09eea099177f59bd9cc48d16969089a9bcdbbd41 PKG_BUILD_PARALLEL:=1 PKG_LICENSE:=GPLv2 diff --git a/lede/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch b/lede/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch index 4a024ec31a..ce4e6ecba4 100644 --- a/lede/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch +++ b/lede/package/kernel/r8125/patches/200-r8125-print-link-speed-and-duplex-mode.patch @@ -37,7 +37,7 @@ Signed-off-by: Álvaro Fernández Rojas #include #include #include -@@ -5045,6 +5046,38 @@ rtl8125_link_down_patch(struct net_devic +@@ -5051,6 +5052,38 @@ rtl8125_link_down_patch(struct net_devic #endif } @@ -76,7 +76,7 @@ Signed-off-by: Álvaro Fernández Rojas static void _rtl8125_check_link_status(struct net_device *dev, unsigned int link_state) { -@@ -5057,11 +5090,18 @@ _rtl8125_check_link_status(struct net_de +@@ -5063,11 +5096,18 @@ _rtl8125_check_link_status(struct net_de if (link_state == R8125_LINK_STATE_ON) { rtl8125_link_on_patch(dev); diff --git a/lede/package/kernel/r8125/patches/300-r8125-add-LED-configuration-from-OF.patch b/lede/package/kernel/r8125/patches/300-r8125-add-LED-configuration-from-OF.patch index 2e6752dbf0..f60b127f75 100644 --- a/lede/package/kernel/r8125/patches/300-r8125-add-LED-configuration-from-OF.patch +++ b/lede/package/kernel/r8125/patches/300-r8125-add-LED-configuration-from-OF.patch @@ -8,7 +8,7 @@ #include #include #include -@@ -14808,6 +14809,22 @@ rtl8125_restore_phy_fuse_dout(struct rtl +@@ -14801,6 +14802,22 @@ rtl8125_restore_phy_fuse_dout(struct rtl } static void @@ -31,7 +31,7 @@ rtl8125_init_software_variable(struct net_device *dev) { struct rtl8125_private *tp = netdev_priv(dev); -@@ -15309,6 +15326,7 @@ rtl8125_init_software_variable(struct ne +@@ -15316,6 +15333,7 @@ rtl8125_init_software_variable(struct ne else if (tp->InitRxDescType == RX_DESC_RING_TYPE_4) tp->rtl8125_rx_config &= ~EnableRxDescV4_1; diff --git a/lede/package/kernel/r8126/Makefile b/lede/package/kernel/r8126/Makefile index f6242f3bf0..ba23f3e5a2 100644 --- a/lede/package/kernel/r8126/Makefile +++ b/lede/package/kernel/r8126/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=r8126 -PKG_VERSION:=10.015.00 +PKG_VERSION:=10.016.00 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://github.com/openwrt/rtl8126/releases/download/$(PKG_VERSION) -PKG_HASH:=fac513aa925264a95b053e7532fcda56022d29db288f6625fafee2759a8a6124 +PKG_HASH:=50c8d3d49592d2e8f372bd7ece8e7df9b50a71b055c077d42eacc42302914440 PKG_BUILD_PARALLEL:=1 PKG_LICENSE:=GPLv2 diff --git a/lede/package/kernel/r8126/patches/100-fix-build-with-linux-6.9.patch b/lede/package/kernel/r8126/patches/100-fix-build-with-linux-6.9.patch deleted file mode 100644 index a0b2162852..0000000000 --- a/lede/package/kernel/r8126/patches/100-fix-build-with-linux-6.9.patch +++ /dev/null @@ -1,116 +0,0 @@ ---- a/src/r8126_n.c -+++ b/src/r8126_n.c -@@ -6929,7 +6929,11 @@ rtl8126_device_lpi_t_to_ethtool_lpi_t(st - } - - static int -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+rtl_ethtool_get_eee(struct net_device *net, struct ethtool_keee *edata) -+#else - rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata) -+#endif - { - struct rtl8126_private *tp = netdev_priv(net); - struct ethtool_eee *eee = &tp->eee; -@@ -6962,9 +6966,15 @@ rtl_ethtool_get_eee(struct net_device *n - - edata->eee_enabled = !!val; - edata->eee_active = !!(supported & adv & lp); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+ ethtool_convert_legacy_u32_to_link_mode(edata->supported, supported); -+ ethtool_convert_legacy_u32_to_link_mode(edata->advertised, adv); -+ ethtool_convert_legacy_u32_to_link_mode(edata->lp_advertised, lp); -+#else - edata->supported = supported; - edata->advertised = adv; - edata->lp_advertised = lp; -+#endif - edata->tx_lpi_enabled = edata->eee_enabled; - edata->tx_lpi_timer = tx_lpi_timer; - -@@ -6972,11 +6982,19 @@ rtl_ethtool_get_eee(struct net_device *n - } - - static int -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+rtl_ethtool_set_eee(struct net_device *net, struct ethtool_keee *edata) -+#else - rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata) -+#endif - { - struct rtl8126_private *tp = netdev_priv(net); - struct ethtool_eee *eee = &tp->eee; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+ u32 advertising, adv; -+#else - u32 advertising; -+#endif - int rc = 0; - - if (!HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp) || -@@ -7008,6 +7026,18 @@ rtl_ethtool_set_eee(struct net_device *n - */ - - advertising = tp->advertising; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+ ethtool_convert_link_mode_to_legacy_u32(&adv, edata->advertised); -+ if (linkmode_empty(edata->advertised)) { -+ adv = advertising & eee->supported; -+ ethtool_convert_legacy_u32_to_link_mode(edata->advertised, adv); -+ } else if (!linkmode_empty(edata->advertised) & ~advertising) { -+ dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of autoneg advertised speeds %x\n", -+ adv, advertising); -+ rc = -EINVAL; -+ goto out; -+ } -+#else - if (!edata->advertised) { - edata->advertised = advertising & eee->supported; - } else if (edata->advertised & ~advertising) { -@@ -7016,13 +7046,23 @@ rtl_ethtool_set_eee(struct net_device *n - rc = -EINVAL; - goto out; - } -+#endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+ if (!linkmode_empty(edata->advertised) & ~eee->supported) { -+ dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of support %x\n", -+ adv, eee->supported); -+ rc = -EINVAL; -+ goto out; -+ } -+#else - if (edata->advertised & ~eee->supported) { - dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of support %x\n", - edata->advertised, eee->supported); - rc = -EINVAL; - goto out; - } -+#endif - - //tp->eee.eee_enabled = edata->eee_enabled; - //tp->eee_adv_t = ethtool_adv_to_mmd_eee_adv_t(edata->advertised); -@@ -7030,7 +7070,11 @@ rtl_ethtool_set_eee(struct net_device *n - dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE tx_lpi_timer %x must be a subset of support %x\n", - edata->tx_lpi_timer, eee->tx_lpi_timer); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0) -+ ethtool_convert_link_mode_to_legacy_u32(&eee->advertised, edata->advertised); -+#else - eee->advertised = edata->advertised; -+#endif - //eee->tx_lpi_enabled = edata->tx_lpi_enabled; - //eee->tx_lpi_timer = edata->tx_lpi_timer; - eee->eee_enabled = edata->eee_enabled; -@@ -7106,8 +7150,10 @@ static const struct ethtool_ops rtl8126_ - .set_rxnfc = rtl8126_set_rxnfc, - .get_rxfh_indir_size = rtl8126_rss_indir_size, - .get_rxfh_key_size = rtl8126_get_rxfh_key_size, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,9,0) - .get_rxfh = rtl8126_get_rxfh, - .set_rxfh = rtl8126_set_rxfh, -+#endif - #endif //ENABLE_RSS_SUPPORT - #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) - #ifdef ENABLE_PTP_SUPPORT diff --git a/lede/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch b/lede/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch index 8b85de6736..0cd551ddf3 100644 --- a/lede/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch +++ b/lede/package/kernel/r8126/patches/200-r8126-print-link-speed-and-duplex-mode.patch @@ -17,7 +17,7 @@ Signed-off-by: Álvaro Fernández Rojas --- a/src/r8126.h +++ b/src/r8126.h -@@ -1756,6 +1756,10 @@ enum RTL8126_register_content { +@@ -1752,6 +1752,10 @@ enum RTL8126_register_content { LinkStatus = 0x02, FullDup = 0x01, @@ -38,8 +38,8 @@ Signed-off-by: Álvaro Fernández Rojas #include #include #include -@@ -4661,6 +4662,40 @@ rtl8126_link_down_patch(struct net_devic - #endif +@@ -4410,6 +4411,40 @@ rtl8126_link_down_patch(struct net_devic + //rtl8126_set_speed(dev, tp->autoneg, tp->speed, tp->duplex, tp->advertising); } +static unsigned int rtl8126_phy_duplex(u32 status) @@ -79,7 +79,7 @@ Signed-off-by: Álvaro Fernández Rojas static void _rtl8126_check_link_status(struct net_device *dev, unsigned int link_state) { -@@ -4673,11 +4708,18 @@ _rtl8126_check_link_status(struct net_de +@@ -4422,11 +4457,18 @@ _rtl8126_check_link_status(struct net_de if (link_state == R8126_LINK_STATE_ON) { rtl8126_link_on_patch(dev); diff --git a/mieru/apis/common/early_conn.go b/mieru/apis/common/early_conn.go new file mode 100644 index 0000000000..a42fa9e0b1 --- /dev/null +++ b/mieru/apis/common/early_conn.go @@ -0,0 +1,141 @@ +// Copyright (C) 2025 mieru authors +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package common + +import ( + "bytes" + "fmt" + "io" + "net" + "strings" + "sync" + "time" + + "github.com/enfein/mieru/v3/apis/constant" + "github.com/enfein/mieru/v3/apis/model" +) + +// EarlyConn implements net.Conn interface. +// When the Write() method on the net.Conn is called for the first time, +// it performs the initial handshake and writes the request to the server. +type EarlyConn struct { + net.Conn + handshakeOnce sync.Once + handshakeErr error + handshaked chan struct{} + netAddrSpec model.NetAddrSpec +} + +// NewEarlyConn creates a new EarlyConn. +func NewEarlyConn(conn net.Conn, netAddrSpec model.NetAddrSpec) *EarlyConn { + return &EarlyConn{ + Conn: conn, + handshaked: make(chan struct{}), + netAddrSpec: netAddrSpec, + } +} + +// Read will block until a message is received or an error occurs. +// It waits for the handshake to complete. +func (c *EarlyConn) Read(b []byte) (n int, err error) { + <-c.handshaked + if c.handshakeErr != nil { + return 0, c.handshakeErr + } + return c.Conn.Read(b) +} + +// Write will block until the message is sent or an error occurs. +// It triggers the initial handshake if it has not been performed yet, +// and sends the data in the same packet as the handshake request. +func (c *EarlyConn) Write(b []byte) (n int, err error) { + var writtenDuringHandshake bool + c.handshakeOnce.Do(func() { + c.handshakeErr = c.doHandshakeAndWrite(b) + close(c.handshaked) + writtenDuringHandshake = true + }) + + if c.handshakeErr != nil { + return 0, c.handshakeErr + } + if writtenDuringHandshake { + return len(b), nil + } + + return c.Conn.Write(b) +} + +func (c *EarlyConn) Close() error { + c.handshakeOnce.Do(func() { + close(c.handshaked) // unblock Read() method + }) + return c.Conn.Close() +} + +// NeedHandshake returns true if the handshake has not been performed yet. +func (c *EarlyConn) NeedHandshake() bool { + select { + case <-c.handshaked: + return false + default: + return true + } +} + +func (c *EarlyConn) doHandshakeAndWrite(b []byte) error { + var req bytes.Buffer + isTCP := strings.HasPrefix(c.netAddrSpec.Network(), "tcp") + isUDP := strings.HasPrefix(c.netAddrSpec.Network(), "udp") + + if isTCP { + req.Write([]byte{constant.Socks5Version, constant.Socks5ConnectCmd, 0}) + } else if isUDP { + req.Write([]byte{constant.Socks5Version, constant.Socks5UDPAssociateCmd, 0}) + } else { + return fmt.Errorf("unsupported network type %s", c.netAddrSpec.Network()) + } + + if err := c.netAddrSpec.WriteToSocks5(&req); err != nil { + return err + } + if len(b) > 0 { + req.Write(b) + } + + if _, err := c.Conn.Write(req.Bytes()); err != nil { + return fmt.Errorf("failed to write socks5 connection request to the server: %w", err) + } + + c.Conn.SetReadDeadline(time.Now().Add(10 * time.Second)) + defer func() { + c.Conn.SetReadDeadline(time.Time{}) + }() + + resp := make([]byte, 3) + if _, err := io.ReadFull(c.Conn, resp); err != nil { + return fmt.Errorf("failed to read socks5 connection response from the server: %w", err) + } + var respAddr model.NetAddrSpec + if err := respAddr.ReadFromSocks5(c.Conn); err != nil { + return fmt.Errorf("failed to read socks5 connection address response from the server: %w", err) + } + if resp[1] != 0 { + return fmt.Errorf("server returned socks5 error code %d", resp[1]) + } + + return nil +} diff --git a/mieru/apis/common/early_conn_test.go b/mieru/apis/common/early_conn_test.go new file mode 100644 index 0000000000..9d92b18fdd --- /dev/null +++ b/mieru/apis/common/early_conn_test.go @@ -0,0 +1,106 @@ +// Copyright (C) 2025 mieru authors +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package common_test + +import ( + "io" + "sync" + "testing" + + "github.com/enfein/mieru/v3/apis/common" + "github.com/enfein/mieru/v3/apis/constant" + "github.com/enfein/mieru/v3/apis/model" + "github.com/enfein/mieru/v3/pkg/testtool" +) + +func TestEarlyConn(t *testing.T) { + clientConn, serverConn := testtool.BufPipe() + + var wg sync.WaitGroup + wg.Add(1) + + // Run a fake socks5 server. + go func() { + defer wg.Done() + defer serverConn.Close() + + // Read and discard socks5 request header. + reqHeader := make([]byte, 3) + if _, err := io.ReadFull(serverConn, reqHeader); err != nil { + t.Errorf("server: failed to read request header: %v", err) + return + } + + // Read destination address. + var addr model.NetAddrSpec + if err := addr.ReadFromSocks5(serverConn); err != nil { + t.Errorf("server: failed to read destination address: %v", err) + return + } + + // Send reply using a dummy IPv4 address 0.0.0.0:0. + reply := []byte{constant.Socks5Version, 0, 0, constant.Socks5IPv4Address, 0, 0, 0, 0, 0, 0} + if _, err := serverConn.Write(reply); err != nil { + t.Errorf("server: failed to write reply: %v", err) + return + } + + // Read client data ("ping"). + ping := make([]byte, 4) + if _, err := io.ReadFull(serverConn, ping); err != nil { + t.Errorf("server: failed to read data: %v", err) + return + } + if string(ping) != "ping" { + t.Errorf("server: expected client to send 'ping', got '%s'", string(ping)) + return + } + + // Send server data ("pong"). + if _, err := serverConn.Write([]byte("pong")); err != nil { + t.Errorf("server: failed to write data: %v", err) + return + } + }() + + // Create client early connection. + target := model.NetAddrSpec{ + AddrSpec: model.AddrSpec{ + FQDN: "example.com", + Port: 80, + }, + Net: "tcp", + } + conn := common.NewEarlyConn(clientConn, target) + defer conn.Close() + + // The first write triggers the handshake. + if _, err := conn.Write([]byte("ping")); err != nil { + t.Fatalf("client: failed to write data: %v", err) + } + + // The server should respond with "pong" after the handshake is complete. + pong := make([]byte, 4) + if _, err := io.ReadFull(conn, pong); err != nil { + t.Fatalf("client: failed to read data: %v", err) + } + + if string(pong) != "pong" { + t.Fatalf("client: expected server to send 'pong', got '%s'", string(pong)) + } + + wg.Wait() +} diff --git a/mihomo/adapter/outbound/shadowsocks.go b/mihomo/adapter/outbound/shadowsocks.go index 595ef0e5e8..6ed737b82b 100644 --- a/mihomo/adapter/outbound/shadowsocks.go +++ b/mihomo/adapter/outbound/shadowsocks.go @@ -11,6 +11,7 @@ import ( "github.com/metacubex/mihomo/component/dialer" "github.com/metacubex/mihomo/component/proxydialer" C "github.com/metacubex/mihomo/constant" + "github.com/metacubex/mihomo/ntp" gost "github.com/metacubex/mihomo/transport/gost-plugin" "github.com/metacubex/mihomo/transport/restls" obfs "github.com/metacubex/mihomo/transport/simple-obfs" @@ -251,8 +252,9 @@ func (ss *ShadowSocks) SupportUOT() bool { func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error) { addr := net.JoinHostPort(option.Server, strconv.Itoa(option.Port)) - method, err := shadowsocks.CreateMethod(context.Background(), option.Cipher, shadowsocks.MethodOptions{ + method, err := shadowsocks.CreateMethod(option.Cipher, shadowsocks.MethodOptions{ Password: option.Password, + TimeFunc: ntp.Now, }) if err != nil { return nil, fmt.Errorf("ss %s cipher: %s initialize error: %w", addr, option.Cipher, err) diff --git a/mihomo/adapter/provider/provider.go b/mihomo/adapter/provider/provider.go index 3c73d36140..2f71b41bb1 100644 --- a/mihomo/adapter/provider/provider.go +++ b/mihomo/adapter/provider/provider.go @@ -331,15 +331,22 @@ func (cp *CompatibleProvider) Close() error { } func NewProxiesParser(filter string, excludeFilter string, excludeType string, dialerProxy string, override OverrideSchema) (resource.Parser[[]C.Proxy], error) { - excludeFilterReg, err := regexp2.Compile(excludeFilter, regexp2.None) - if err != nil { - return nil, fmt.Errorf("invalid excludeFilter regex: %w", err) - } var excludeTypeArray []string if excludeType != "" { excludeTypeArray = strings.Split(excludeType, "|") } + var excludeFilterRegs []*regexp2.Regexp + if excludeFilter != "" { + for _, excludeFilter := range strings.Split(excludeFilter, "`") { + excludeFilterReg, err := regexp2.Compile(excludeFilter, regexp2.None) + if err != nil { + return nil, fmt.Errorf("invalid excludeFilter regex: %w", err) + } + excludeFilterRegs = append(excludeFilterRegs, excludeFilterReg) + } + } + var filterRegs []*regexp2.Regexp for _, filter := range strings.Split(filter, "`") { filterReg, err := regexp2.Compile(filter, regexp2.None) @@ -367,8 +374,9 @@ func NewProxiesParser(filter string, excludeFilter string, excludeType string, d proxies := []C.Proxy{} proxiesSet := map[string]struct{}{} for _, filterReg := range filterRegs { + LOOP1: for idx, mapping := range schema.Proxies { - if nil != excludeTypeArray && len(excludeTypeArray) > 0 { + if len(excludeTypeArray) > 0 { mType, ok := mapping["type"] if !ok { continue @@ -377,18 +385,11 @@ func NewProxiesParser(filter string, excludeFilter string, excludeType string, d if !ok { continue } - flag := false - for i := range excludeTypeArray { - if strings.EqualFold(pType, excludeTypeArray[i]) { - flag = true - break + for _, excludeType := range excludeTypeArray { + if strings.EqualFold(pType, excludeType) { + continue LOOP1 } - } - if flag { - continue - } - } mName, ok := mapping["name"] if !ok { @@ -398,9 +399,11 @@ func NewProxiesParser(filter string, excludeFilter string, excludeType string, d if !ok { continue } - if len(excludeFilter) > 0 { - if mat, _ := excludeFilterReg.MatchString(name); mat { - continue + if len(excludeFilterRegs) > 0 { + for _, excludeFilterReg := range excludeFilterRegs { + if mat, _ := excludeFilterReg.MatchString(name); mat { + continue LOOP1 + } } } if len(filter) > 0 { diff --git a/mihomo/go.mod b/mihomo/go.mod index a71c365f1f..a8bdd1fbeb 100644 --- a/mihomo/go.mod +++ b/mihomo/go.mod @@ -24,13 +24,13 @@ require ( github.com/metacubex/quic-go v0.54.1-0.20250730114134-a1ae705fe295 github.com/metacubex/randv2 v0.2.0 github.com/metacubex/restls-client-go v0.1.7 - github.com/metacubex/sing v0.5.6-0.20250904143031-f1a62fab1489 + github.com/metacubex/sing v0.5.6-0.20250912172506-82b42a287539 github.com/metacubex/sing-mux v0.3.3 github.com/metacubex/sing-quic v0.0.0-20250909002258-06122df8f231 github.com/metacubex/sing-shadowsocks v0.2.12 - github.com/metacubex/sing-shadowsocks2 v0.2.6 + github.com/metacubex/sing-shadowsocks2 v0.2.7 github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2 - github.com/metacubex/sing-tun v0.4.8-0.20250910070000-df2c1a4be299 + github.com/metacubex/sing-tun v0.4.8-0.20250912172659-89eba941fb22 github.com/metacubex/sing-vmess v0.2.4-0.20250908094854-bc8e2a88b115 github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f github.com/metacubex/smux v0.0.0-20250503055512-501391591dee diff --git a/mihomo/go.sum b/mihomo/go.sum index 5390a1ef10..b30499f3c2 100644 --- a/mihomo/go.sum +++ b/mihomo/go.sum @@ -117,20 +117,20 @@ github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFq github.com/metacubex/restls-client-go v0.1.7 h1:eCwiXCTQb5WJu9IlgYvDBA1OgrINv58dEe7hcN5H15k= github.com/metacubex/restls-client-go v0.1.7/go.mod h1:BN/U52vPw7j8VTSh2vleD/MnmVKCov84mS5VcjVHH4g= github.com/metacubex/sing v0.5.2/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= -github.com/metacubex/sing v0.5.6-0.20250904143031-f1a62fab1489 h1:jKOFzhHTbxqhCluh5ONxjDe6CJMNHvgniXAf1RWuzlE= -github.com/metacubex/sing v0.5.6-0.20250904143031-f1a62fab1489/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= +github.com/metacubex/sing v0.5.6-0.20250912172506-82b42a287539 h1:ArXEdw7JvbL3dLc3D7kBGTDmuBBI/sNIyR3O4MlfPH8= +github.com/metacubex/sing v0.5.6-0.20250912172506-82b42a287539/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= github.com/metacubex/sing-mux v0.3.3 h1:oqCbUAJgTLsa71vfo8otW8xIhrDfbc/Y2rmtW34sQjg= github.com/metacubex/sing-mux v0.3.3/go.mod h1:3rt1soewn0O6j89GCLmwAQFsq257u0jf2zQSPhTL3Bw= github.com/metacubex/sing-quic v0.0.0-20250909002258-06122df8f231 h1:dGvo7UahC/gYBQNBoictr14baJzBjAKUAorP63QFFtg= github.com/metacubex/sing-quic v0.0.0-20250909002258-06122df8f231/go.mod h1:B60FxaPHjR1SeQB0IiLrgwgvKsaoASfOWdiqhLjmMGA= github.com/metacubex/sing-shadowsocks v0.2.12 h1:Wqzo8bYXrK5aWqxu/TjlTnYZzAKtKsaFQBdr6IHFaBE= github.com/metacubex/sing-shadowsocks v0.2.12/go.mod h1:2e5EIaw0rxKrm1YTRmiMnDulwbGxH9hAFlrwQLQMQkU= -github.com/metacubex/sing-shadowsocks2 v0.2.6 h1:ZR1kYT0f0Vi64iQSS09OdhFfppiNkh7kjgRdMm0SB98= -github.com/metacubex/sing-shadowsocks2 v0.2.6/go.mod h1:vOEbfKC60txi0ca+yUlqEwOGc3Obl6cnSgx9Gf45KjE= +github.com/metacubex/sing-shadowsocks2 v0.2.7 h1:hSuuc0YpsfiqYqt1o+fP4m34BQz4e6wVj3PPBVhor3A= +github.com/metacubex/sing-shadowsocks2 v0.2.7/go.mod h1:vOEbfKC60txi0ca+yUlqEwOGc3Obl6cnSgx9Gf45KjE= github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2 h1:gXU+MYPm7Wme3/OAY2FFzVq9d9GxPHOqu5AQfg/ddhI= github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2/go.mod h1:mbfboaXauKJNIHJYxQRa+NJs4JU9NZfkA+I33dS2+9E= -github.com/metacubex/sing-tun v0.4.8-0.20250910070000-df2c1a4be299 h1:ytXxmMPndWV0w+yHMwVXjx6CO9AzFdZ1VE0VIjoGjZU= -github.com/metacubex/sing-tun v0.4.8-0.20250910070000-df2c1a4be299/go.mod h1:e4AyoGUrhiKQjRio3npn87E4TmIk7X5LmeiRwZettUA= +github.com/metacubex/sing-tun v0.4.8-0.20250912172659-89eba941fb22 h1:A/FVt2fbZ1a6elVOP/e3X/1ww7/vvzN5wdS1DJd6Ti8= +github.com/metacubex/sing-tun v0.4.8-0.20250912172659-89eba941fb22/go.mod h1:e4AyoGUrhiKQjRio3npn87E4TmIk7X5LmeiRwZettUA= github.com/metacubex/sing-vmess v0.2.4-0.20250908094854-bc8e2a88b115 h1:Idk4GoB44BNN1cbjmV5aFHDXjRoV2taSgQypjCEemGM= github.com/metacubex/sing-vmess v0.2.4-0.20250908094854-bc8e2a88b115/go.mod h1:21R5R1u90uUvBQF0owoooEu96/SAYYD56nDrwm6nFaM= github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f h1:Sr/DYKYofKHKc4GF3qkRGNuj6XA6c0eqPgEDN+VAsYU= diff --git a/mihomo/hub/executor/executor.go b/mihomo/hub/executor/executor.go index c6bef52523..fcf176e0e0 100644 --- a/mihomo/hub/executor/executor.go +++ b/mihomo/hub/executor/executor.go @@ -231,6 +231,8 @@ func updateNTP(c *config.NTP) { c.DialerProxy, c.WriteToSystem, ) + } else { + ntp.ReCreateNTPService("", 0, "", false) } } diff --git a/mihomo/ntp/service.go b/mihomo/ntp/service.go index 6fb7453e29..0817b9f00d 100644 --- a/mihomo/ntp/service.go +++ b/mihomo/ntp/service.go @@ -3,6 +3,7 @@ package ntp import ( "context" "sync" + "sync/atomic" "time" "github.com/metacubex/mihomo/component/dialer" @@ -13,8 +14,8 @@ import ( "github.com/metacubex/sing/common/ntp" ) -var offset time.Duration -var service *Service +var globalSrv atomic.Pointer[Service] +var globalMu sync.Mutex type Service struct { server M.Socksaddr @@ -22,15 +23,22 @@ type Service struct { ticker *time.Ticker ctx context.Context cancel context.CancelFunc - mu sync.Mutex + mu sync.RWMutex + offset time.Duration syncSystemTime bool running bool } func ReCreateNTPService(server string, interval time.Duration, dialerProxy string, syncSystemTime bool) { + globalMu.Lock() + defer globalMu.Unlock() + service := globalSrv.Swap(nil) if service != nil { service.Stop() } + if server == "" { + return + } ctx, cancel := context.WithCancel(context.Background()) service = &Service{ server: M.ParseSocksaddr(server), @@ -41,6 +49,7 @@ func ReCreateNTPService(server string, interval time.Duration, dialerProxy strin syncSystemTime: syncSystemTime, } service.Start() + globalSrv.Store(service) } func (srv *Service) Start() { @@ -52,57 +61,62 @@ func (srv *Service) Start() { log.Errorln("Initialize NTP time failed: %s", err) return } - service.running = true + srv.running = true go srv.loopUpdate() } func (srv *Service) Stop() { srv.mu.Lock() defer srv.mu.Unlock() - if service.running { + if srv.running { srv.ticker.Stop() srv.cancel() - service.running = false + srv.running = false } } -func (srv *Service) Running() bool { +func (srv *Service) Offset() time.Duration { if srv == nil { - return false + return 0 } - srv.mu.Lock() - defer srv.mu.Unlock() - return srv.running + srv.mu.RLock() + defer srv.mu.RUnlock() + if srv.running { + return srv.offset + } + return 0 } func (srv *Service) update() error { var response *ntp.Response var err error for i := 0; i < 3; i++ { - if response, err = ntp.Exchange(context.Background(), srv.dialer, srv.server); err == nil { - break + response, err = ntp.Exchange(srv.ctx, srv.dialer, srv.server) + if err != nil { + continue } - if i == 2 { - return err + offset := response.ClockOffset + if offset > time.Duration(0) { + log.Infoln("System clock is ahead of NTP time by %s", offset) + } else if offset < time.Duration(0) { + log.Infoln("System clock is behind NTP time by %s", -offset) } - } - offset = response.ClockOffset - if offset > time.Duration(0) { - log.Infoln("System clock is ahead of NTP time by %s", offset) - } else if offset < time.Duration(0) { - log.Infoln("System clock is behind NTP time by %s", -offset) - } - if srv.syncSystemTime { - timeNow := response.Time - syncErr := setSystemTime(timeNow) - if syncErr == nil { - log.Infoln("Sync system time success: %s", timeNow.Local().Format(ntp.TimeLayout)) - } else { - log.Errorln("Write time to system: %s", syncErr) - srv.syncSystemTime = false + srv.mu.Lock() + srv.offset = offset + srv.mu.Unlock() + if srv.syncSystemTime { + timeNow := response.Time + syncErr := setSystemTime(timeNow) + if syncErr == nil { + log.Infoln("Sync system time success: %s", timeNow.Local().Format(ntp.TimeLayout)) + } else { + log.Errorln("Write time to system: %s", syncErr) + srv.syncSystemTime = false + } } + return nil } - return nil + return err } func (srv *Service) loopUpdate() { @@ -121,7 +135,7 @@ func (srv *Service) loopUpdate() { func Now() time.Time { now := time.Now() - if service.Running() && offset.Abs() > 0 { + if offset := globalSrv.Load().Offset(); offset.Abs() > 0 { now = now.Add(offset) } return now diff --git a/openwrt-packages/quickstart/Makefile b/openwrt-packages/quickstart/Makefile index 7547055369..8b6b010711 100644 --- a/openwrt-packages/quickstart/Makefile +++ b/openwrt-packages/quickstart/Makefile @@ -10,11 +10,11 @@ include $(TOPDIR)/rules.mk PKG_ARCH_quickstart:=$(ARCH) PKG_NAME:=quickstart -PKG_VERSION:=0.11.6 +PKG_VERSION:=0.11.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/ -PKG_HASH:=1b3d206156b615cc227b3936d4e2cabba429f205b8cbd4d1a297ebc6870efce6 +PKG_HASH:=8d70a4e8a6c17c767d3507037567185aa6f80e388b22a2eede9d2e253fbad233 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION) diff --git a/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm b/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm index 78883b9f94..dbe8aff219 100644 --- a/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm +++ b/openwrt-passwall/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm @@ -55,22 +55,18 @@ local api = require "luci.passwall.api" "gfwlist_update","chnroute_update","chnroute6_update", "chnlist_update","geoip_update","geosite_update" ]; - const targetNode = document.querySelector('form') || document.body; - const observer = new MutationObserver(() => { + const bindFlags = () => { + let allBound = true; flags.forEach(flag => { const orig = Array.from(document.querySelectorAll(`input[name$=".${flag}"]`)).find(i => i.type === 'checkbox'); - if (!orig) { - return; - } + if (!orig) { allBound = false; return; } // 隐藏最外层 div const wrapper = orig.closest('.cbi-value'); if (wrapper && wrapper.style.display !== 'none') { wrapper.style.display = 'none'; } const custom = document.querySelector(`.cbi-input-checkbox[name="${flag.replace('_update','')}"]`); - if (!custom) { - return; - } + if (!custom) { allBound = false; return; } custom.checked = orig.checked; // 自定义选择框与原生Flag双向绑定 if (!custom._binded) { @@ -84,8 +80,13 @@ local api = require "luci.passwall.api" }); } }); - }); - observer.observe(targetNode, { childList: true, subtree: true }); + return allBound; + }; + const target = document.querySelector('form') || document.body; + const observer = new MutationObserver(() => bindFlags() ? observer.disconnect() : 0); + observer.observe(target, { childList: true, subtree: true }); + const timer = setInterval(() => bindFlags() ? (clearInterval(timer), observer.disconnect()) : 0, 300); + setTimeout(() => { clearInterval(timer); observer.disconnect(); }, 5000); }); function update_rules(btn) { diff --git a/sing-box/.github/workflows/build.yml b/sing-box/.github/workflows/build.yml index 362ac98a62..5d940c5f11 100644 --- a/sing-box/.github/workflows/build.yml +++ b/sing-box/.github/workflows/build.yml @@ -432,7 +432,8 @@ jobs: SERVICE_ACCOUNT_CREDENTIALS: ${{ secrets.SERVICE_ACCOUNT_CREDENTIALS }} build_apple: name: Build Apple clients - runs-on: macos-15 + runs-on: macos-26 + if: false needs: - calculate_version strategy: @@ -479,14 +480,6 @@ jobs: uses: actions/setup-go@v5 with: go-version: ^1.25.1 - - name: Setup Xcode stable - if: matrix.if && github.ref == 'refs/heads/main-next' - run: |- - sudo xcode-select -s /Applications/Xcode_16.4.app - - name: Setup Xcode beta - if: matrix.if && github.ref == 'refs/heads/dev-next' - run: |- - sudo xcode-select -s /Applications/Xcode_16.4.app - name: Set tag if: matrix.if run: |- diff --git a/sing-box/Makefile b/sing-box/Makefile index e8d0a8318f..b92bc6b668 100644 --- a/sing-box/Makefile +++ b/sing-box/Makefile @@ -17,6 +17,10 @@ build: export GOTOOLCHAIN=local && \ go build $(MAIN_PARAMS) $(MAIN) +race: + export GOTOOLCHAIN=local && \ + go build -race $(MAIN_PARAMS) $(MAIN) + ci_build: export GOTOOLCHAIN=local && \ go build $(PARAMS) $(MAIN) && \ diff --git a/sing-box/clients/android/version.properties b/sing-box/clients/android/version.properties index a69e2c2fe4..370998c504 100644 --- a/sing-box/clients/android/version.properties +++ b/sing-box/clients/android/version.properties @@ -1,3 +1,3 @@ -VERSION_CODE=564 -VERSION_NAME=1.12.5 +VERSION_CODE=566 +VERSION_NAME=1.12.6 GO_VERSION=go1.25.1 diff --git a/sing-box/common/certificate/store.go b/sing-box/common/certificate/store.go index 34f20019d4..ee12727826 100644 --- a/sing-box/common/certificate/store.go +++ b/sing-box/common/certificate/store.go @@ -7,6 +7,7 @@ import ( "os" "path/filepath" "strings" + "sync" "github.com/sagernet/fswatch" "github.com/sagernet/sing-box/adapter" @@ -21,6 +22,7 @@ import ( var _ adapter.CertificateStore = (*Store)(nil) type Store struct { + access sync.RWMutex systemPool *x509.CertPool currentPool *x509.CertPool certificate string @@ -115,10 +117,14 @@ func (s *Store) Close() error { } func (s *Store) Pool() *x509.CertPool { + s.access.RLock() + defer s.access.RUnlock() return s.currentPool } func (s *Store) update() error { + s.access.Lock() + defer s.access.Unlock() var currentPool *x509.CertPool if s.systemPool == nil { currentPool = x509.NewCertPool() diff --git a/sing-box/common/tls/ech.go b/sing-box/common/tls/ech.go index 830a8d0823..5e9fba6d5c 100644 --- a/sing-box/common/tls/ech.go +++ b/sing-box/common/tls/ech.go @@ -69,11 +69,7 @@ func parseECHServerConfig(ctx context.Context, options option.InboundTLSOptions, } else { return E.New("missing ECH keys") } - block, rest := pem.Decode(echKey) - if block == nil || block.Type != "ECH KEYS" || len(rest) > 0 { - return E.New("invalid ECH keys pem") - } - echKeys, err := UnmarshalECHKeys(block.Bytes) + echKeys, err := parseECHKeys(echKey) if err != nil { return E.Cause(err, "parse ECH keys") } @@ -85,21 +81,29 @@ func parseECHServerConfig(ctx context.Context, options option.InboundTLSOptions, return nil } -func reloadECHKeys(echKeyPath string, tlsConfig *tls.Config) error { - echKey, err := os.ReadFile(echKeyPath) +func (c *STDServerConfig) setECHServerConfig(echKey []byte) error { + echKeys, err := parseECHKeys(echKey) if err != nil { - return E.Cause(err, "reload ECH keys from ", echKeyPath) + return err } + c.access.Lock() + config := c.config.Clone() + config.EncryptedClientHelloKeys = echKeys + c.config = config + c.access.Unlock() + return nil +} + +func parseECHKeys(echKey []byte) ([]tls.EncryptedClientHelloKey, error) { block, _ := pem.Decode(echKey) if block == nil || block.Type != "ECH KEYS" { - return E.New("invalid ECH keys pem") + return nil, E.New("invalid ECH keys pem") } echKeys, err := UnmarshalECHKeys(block.Bytes) if err != nil { - return E.Cause(err, "parse ECH keys") + return nil, E.Cause(err, "parse ECH keys") } - tlsConfig.EncryptedClientHelloKeys = echKeys - return nil + return echKeys, nil } type ECHClientConfig struct { diff --git a/sing-box/common/tls/ech_stub.go b/sing-box/common/tls/ech_stub.go index 3b6ffc2343..357466c07f 100644 --- a/sing-box/common/tls/ech_stub.go +++ b/sing-box/common/tls/ech_stub.go @@ -18,6 +18,6 @@ func parseECHServerConfig(ctx context.Context, options option.InboundTLSOptions, return E.New("ECH requires go1.24, please recompile your binary.") } -func reloadECHKeys(echKeyPath string, tlsConfig *tls.Config) error { - return E.New("ECH requires go1.24, please recompile your binary.") +func (c *STDServerConfig) setECHServerConfig(echKey []byte) error { + panic("unreachable") } diff --git a/sing-box/common/tls/std_server.go b/sing-box/common/tls/std_server.go index 5ce12da6d2..d162ceb7c8 100644 --- a/sing-box/common/tls/std_server.go +++ b/sing-box/common/tls/std_server.go @@ -6,6 +6,7 @@ import ( "net" "os" "strings" + "sync" "time" "github.com/sagernet/fswatch" @@ -21,6 +22,7 @@ import ( var errInsecureUnused = E.New("tls: insecure unused") type STDServerConfig struct { + access sync.RWMutex config *tls.Config logger log.Logger acmeService adapter.SimpleLifecycle @@ -33,14 +35,22 @@ type STDServerConfig struct { } func (c *STDServerConfig) ServerName() string { + c.access.RLock() + defer c.access.RUnlock() return c.config.ServerName } func (c *STDServerConfig) SetServerName(serverName string) { - c.config.ServerName = serverName + c.access.Lock() + defer c.access.Unlock() + config := c.config.Clone() + config.ServerName = serverName + c.config = config } func (c *STDServerConfig) NextProtos() []string { + c.access.RLock() + defer c.access.RUnlock() if c.acmeService != nil && len(c.config.NextProtos) > 1 && c.config.NextProtos[0] == ACMETLS1Protocol { return c.config.NextProtos[1:] } else { @@ -49,11 +59,15 @@ func (c *STDServerConfig) NextProtos() []string { } func (c *STDServerConfig) SetNextProtos(nextProto []string) { + c.access.Lock() + defer c.access.Unlock() + config := c.config.Clone() if c.acmeService != nil && len(c.config.NextProtos) > 1 && c.config.NextProtos[0] == ACMETLS1Protocol { - c.config.NextProtos = append(c.config.NextProtos[:1], nextProto...) + config.NextProtos = append(c.config.NextProtos[:1], nextProto...) } else { - c.config.NextProtos = nextProto + config.NextProtos = nextProto } + c.config = config } func (c *STDServerConfig) STDConfig() (*STDConfig, error) { @@ -78,9 +92,6 @@ func (c *STDServerConfig) Start() error { if c.acmeService != nil { return c.acmeService.Start() } else { - if c.certificatePath == "" && c.keyPath == "" { - return nil - } err := c.startWatcher() if err != nil { c.logger.Warn("create fsnotify watcher: ", err) @@ -100,6 +111,9 @@ func (c *STDServerConfig) startWatcher() error { if c.echKeyPath != "" { watchPath = append(watchPath, c.echKeyPath) } + if len(watchPath) == 0 { + return nil + } watcher, err := fswatch.NewWatcher(fswatch.Options{ Path: watchPath, Callback: func(path string) { @@ -139,10 +153,18 @@ func (c *STDServerConfig) certificateUpdated(path string) error { if err != nil { return E.Cause(err, "reload key pair") } - c.config.Certificates = []tls.Certificate{keyPair} + c.access.Lock() + config := c.config.Clone() + config.Certificates = []tls.Certificate{keyPair} + c.config = config + c.access.Unlock() c.logger.Info("reloaded TLS certificate") } else if path == c.echKeyPath { - err := reloadECHKeys(c.echKeyPath, c.config) + echKey, err := os.ReadFile(c.echKeyPath) + if err != nil { + return E.Cause(err, "reload ECH keys from ", c.echKeyPath) + } + err = c.setECHServerConfig(echKey) if err != nil { return err } @@ -263,7 +285,7 @@ func NewSTDServer(ctx context.Context, logger log.ContextLogger, options option. return nil, err } } - var config ServerConfig = &STDServerConfig{ + serverConfig := &STDServerConfig{ config: tlsConfig, logger: logger, acmeService: acmeService, @@ -273,6 +295,12 @@ func NewSTDServer(ctx context.Context, logger log.ContextLogger, options option. keyPath: options.KeyPath, echKeyPath: echKeyPath, } + serverConfig.config.GetConfigForClient = func(info *tls.ClientHelloInfo) (*tls.Config, error) { + serverConfig.access.Lock() + defer serverConfig.access.Unlock() + return serverConfig.config, nil + } + var config ServerConfig = serverConfig if options.KernelTx || options.KernelRx { if !C.IsLinux { return nil, E.New("kTLS is only supported on Linux") diff --git a/sing-box/common/urltest/urltest.go b/sing-box/common/urltest/urltest.go index c441238214..016f4a5012 100644 --- a/sing-box/common/urltest/urltest.go +++ b/sing-box/common/urltest/urltest.go @@ -46,15 +46,15 @@ func (s *HistoryStorage) LoadURLTestHistory(tag string) *adapter.URLTestHistory func (s *HistoryStorage) DeleteURLTestHistory(tag string) { s.access.Lock() delete(s.delayHistory, tag) - s.access.Unlock() s.notifyUpdated() + s.access.Unlock() } func (s *HistoryStorage) StoreURLTestHistory(tag string, history *adapter.URLTestHistory) { s.access.Lock() s.delayHistory[tag] = history - s.access.Unlock() s.notifyUpdated() + s.access.Unlock() } func (s *HistoryStorage) notifyUpdated() { @@ -68,6 +68,8 @@ func (s *HistoryStorage) notifyUpdated() { } func (s *HistoryStorage) Close() error { + s.access.Lock() + defer s.access.Unlock() s.updateHook = nil return nil } diff --git a/sing-box/dns/client.go b/sing-box/dns/client.go index 0d0e712b91..6063b1c6ed 100644 --- a/sing-box/dns/client.go +++ b/sing-box/dns/client.go @@ -280,7 +280,7 @@ func (c *Client) Exchange(ctx context.Context, transport adapter.DNSTransport, m } } logExchangedResponse(c.logger, ctx, response, timeToLive) - return response, err + return response, nil } func (c *Client) Lookup(ctx context.Context, transport adapter.DNSTransport, domain string, options adapter.DNSQueryOptions, responseChecker func(responseAddrs []netip.Addr) bool) ([]netip.Addr, error) { diff --git a/sing-box/dns/rcode.go b/sing-box/dns/rcode.go index 085454741e..59c564b658 100644 --- a/sing-box/dns/rcode.go +++ b/sing-box/dns/rcode.go @@ -5,6 +5,7 @@ import ( ) const ( + RcodeSuccess RcodeError = mDNS.RcodeSuccess RcodeFormatError RcodeError = mDNS.RcodeFormatError RcodeNameError RcodeError = mDNS.RcodeNameError RcodeRefused RcodeError = mDNS.RcodeRefused diff --git a/sing-box/dns/transport/dhcp/dhcp_shared.go b/sing-box/dns/transport/dhcp/dhcp_shared.go index 3d8d551222..2a6b577373 100644 --- a/sing-box/dns/transport/dhcp/dhcp_shared.go +++ b/sing-box/dns/transport/dhcp/dhcp_shared.go @@ -2,12 +2,13 @@ package dhcp import ( "context" + "errors" "math/rand" "strings" - "time" + "syscall" - C "github.com/sagernet/sing-box/constant" "github.com/sagernet/sing-box/dns" + "github.com/sagernet/sing-box/dns/transport" "github.com/sagernet/sing/common/buf" E "github.com/sagernet/sing/common/exceptions" M "github.com/sagernet/sing/common/metadata" @@ -43,7 +44,7 @@ func (t *Transport) exchangeParallel(ctx context.Context, servers []M.Socksaddr, if response.Rcode != mDNS.RcodeSuccess { err = dns.RcodeError(response.Rcode) } else if len(dns.MessageToAddresses(response)) == 0 { - err = E.New(fqdn, ": empty result") + err = dns.RcodeSuccess } } select { @@ -83,7 +84,7 @@ func (t *Transport) tryOneName(ctx context.Context, servers []M.Socksaddr, fqdn server := servers[j] question := message.Question[0] question.Name = fqdn - response, err := t.exchangeOne(ctx, server, question, C.DNSTimeout, false, true) + response, err := t.exchangeOne(ctx, server, question) if err != nil { lastErr = err continue @@ -94,62 +95,77 @@ func (t *Transport) tryOneName(ctx context.Context, servers []M.Socksaddr, fqdn return nil, E.Cause(lastErr, fqdn) } -func (t *Transport) exchangeOne(ctx context.Context, server M.Socksaddr, question mDNS.Question, timeout time.Duration, useTCP, ad bool) (*mDNS.Msg, error) { +func (t *Transport) exchangeOne(ctx context.Context, server M.Socksaddr, question mDNS.Question) (*mDNS.Msg, error) { if server.Port == 0 { server.Port = 53 } - var networks []string - if useTCP { - networks = []string{N.NetworkTCP} - } else { - networks = []string{N.NetworkUDP, N.NetworkTCP} - } request := &mDNS.Msg{ MsgHdr: mDNS.MsgHdr{ Id: uint16(rand.Uint32()), RecursionDesired: true, - AuthenticatedData: ad, + AuthenticatedData: true, }, Question: []mDNS.Question{question}, Compress: true, } request.SetEdns0(buf.UDPBufferSize, false) - buffer := buf.Get(buf.UDPBufferSize) - defer buf.Put(buffer) - for _, network := range networks { - ctx, cancel := context.WithDeadline(ctx, time.Now().Add(timeout)) - defer cancel() - conn, err := t.dialer.DialContext(ctx, network, server) - if err != nil { - return nil, err - } - defer conn.Close() - if deadline, loaded := ctx.Deadline(); loaded && !deadline.IsZero() { - conn.SetDeadline(deadline) - } - rawMessage, err := request.PackBuffer(buffer) - if err != nil { - return nil, E.Cause(err, "pack request") - } - _, err = conn.Write(rawMessage) - if err != nil { - return nil, E.Cause(err, "write request") - } - n, err := conn.Read(buffer) - if err != nil { - return nil, E.Cause(err, "read response") - } - var response mDNS.Msg - err = response.Unpack(buffer[:n]) - if err != nil { - return nil, E.Cause(err, "unpack response") - } - if response.Truncated && network == N.NetworkUDP { - continue - } - return &response, nil + return t.exchangeUDP(ctx, server, request) +} + +func (t *Transport) exchangeUDP(ctx context.Context, server M.Socksaddr, request *mDNS.Msg) (*mDNS.Msg, error) { + conn, err := t.dialer.DialContext(ctx, N.NetworkUDP, server) + if err != nil { + return nil, err } - panic("unexpected") + defer conn.Close() + if deadline, loaded := ctx.Deadline(); loaded && !deadline.IsZero() { + conn.SetDeadline(deadline) + } + buffer := buf.Get(1 + request.Len()) + defer buf.Put(buffer) + rawMessage, err := request.PackBuffer(buffer) + if err != nil { + return nil, E.Cause(err, "pack request") + } + _, err = conn.Write(rawMessage) + if err != nil { + if errors.Is(err, syscall.EMSGSIZE) { + return t.exchangeTCP(ctx, server, request) + } + return nil, E.Cause(err, "write request") + } + n, err := conn.Read(buffer) + if err != nil { + if errors.Is(err, syscall.EMSGSIZE) { + return t.exchangeTCP(ctx, server, request) + } + return nil, E.Cause(err, "read response") + } + var response mDNS.Msg + err = response.Unpack(buffer[:n]) + if err != nil { + return nil, E.Cause(err, "unpack response") + } + if response.Truncated { + return t.exchangeTCP(ctx, server, request) + } + return &response, nil +} + +func (t *Transport) exchangeTCP(ctx context.Context, server M.Socksaddr, request *mDNS.Msg) (*mDNS.Msg, error) { + conn, err := t.dialer.DialContext(ctx, N.NetworkTCP, server) + if err != nil { + return nil, err + } + defer conn.Close() + if deadline, loaded := ctx.Deadline(); loaded && !deadline.IsZero() { + conn.SetDeadline(deadline) + } + err = transport.WriteMessage(conn, 0, request) + if err != nil { + return nil, err + } + return transport.ReadMessage(conn) } func (t *Transport) nameList(name string) []string { diff --git a/sing-box/dns/transport/local/local_shared.go b/sing-box/dns/transport/local/local_shared.go index 6608ed3375..1198ad793d 100644 --- a/sing-box/dns/transport/local/local_shared.go +++ b/sing-box/dns/transport/local/local_shared.go @@ -2,11 +2,13 @@ package local import ( "context" - "fmt" + "errors" "math/rand" + "syscall" "time" "github.com/sagernet/sing-box/dns" + "github.com/sagernet/sing-box/dns/transport" "github.com/sagernet/sing/common/buf" E "github.com/sagernet/sing/common/exceptions" M "github.com/sagernet/sing/common/metadata" @@ -17,7 +19,6 @@ import ( func (t *Transport) exchange(ctx context.Context, message *mDNS.Msg, domain string) (*mDNS.Msg, error) { systemConfig := getSystemDNSConfig(t.ctx) - fmt.Println(systemConfig.servers) if systemConfig.singleRequest || !(message.Question[0].Qtype == mDNS.TypeA || message.Question[0].Qtype == mDNS.TypeAAAA) { return t.exchangeSingleRequest(ctx, systemConfig, message, domain) } else { @@ -108,12 +109,6 @@ func (t *Transport) exchangeOne(ctx context.Context, server M.Socksaddr, questio if server.Port == 0 { server.Port = 53 } - var networks []string - if useTCP { - networks = []string{N.NetworkTCP} - } else { - networks = []string{N.NetworkUDP, N.NetworkTCP} - } request := &mDNS.Msg{ MsgHdr: mDNS.MsgHdr{ Id: uint16(rand.Uint32()), @@ -124,40 +119,73 @@ func (t *Transport) exchangeOne(ctx context.Context, server M.Socksaddr, questio Compress: true, } request.SetEdns0(buf.UDPBufferSize, false) - buffer := buf.Get(buf.UDPBufferSize) - defer buf.Put(buffer) - for _, network := range networks { - ctx, cancel := context.WithDeadline(ctx, time.Now().Add(timeout)) - defer cancel() - conn, err := t.dialer.DialContext(ctx, network, server) - if err != nil { - return nil, err - } - defer conn.Close() - if deadline, loaded := ctx.Deadline(); loaded && !deadline.IsZero() { - conn.SetDeadline(deadline) - } - rawMessage, err := request.PackBuffer(buffer) - if err != nil { - return nil, E.Cause(err, "pack request") - } - _, err = conn.Write(rawMessage) - if err != nil { - return nil, E.Cause(err, "write request") - } - n, err := conn.Read(buffer) - if err != nil { - return nil, E.Cause(err, "read response") - } - var response mDNS.Msg - err = response.Unpack(buffer[:n]) - if err != nil { - return nil, E.Cause(err, "unpack response") - } - if response.Truncated && network == N.NetworkUDP { - continue - } - return &response, nil + if !useTCP { + return t.exchangeUDP(ctx, server, request, timeout) + } else { + return t.exchangeTCP(ctx, server, request, timeout) } - panic("unexpected") +} + +func (t *Transport) exchangeUDP(ctx context.Context, server M.Socksaddr, request *mDNS.Msg, timeout time.Duration) (*mDNS.Msg, error) { + conn, err := t.dialer.DialContext(ctx, N.NetworkUDP, server) + if err != nil { + return nil, err + } + defer conn.Close() + if deadline, loaded := ctx.Deadline(); loaded && !deadline.IsZero() { + newDeadline := time.Now().Add(timeout) + if deadline.After(newDeadline) { + deadline = newDeadline + } + conn.SetDeadline(deadline) + } + buffer := buf.Get(1 + request.Len()) + defer buf.Put(buffer) + rawMessage, err := request.PackBuffer(buffer) + if err != nil { + return nil, E.Cause(err, "pack request") + } + _, err = conn.Write(rawMessage) + if err != nil { + if errors.Is(err, syscall.EMSGSIZE) { + return t.exchangeTCP(ctx, server, request, timeout) + } + return nil, E.Cause(err, "write request") + } + n, err := conn.Read(buffer) + if err != nil { + if errors.Is(err, syscall.EMSGSIZE) { + return t.exchangeTCP(ctx, server, request, timeout) + } + return nil, E.Cause(err, "read response") + } + var response mDNS.Msg + err = response.Unpack(buffer[:n]) + if err != nil { + return nil, E.Cause(err, "unpack response") + } + if response.Truncated { + return t.exchangeTCP(ctx, server, request, timeout) + } + return &response, nil +} + +func (t *Transport) exchangeTCP(ctx context.Context, server M.Socksaddr, request *mDNS.Msg, timeout time.Duration) (*mDNS.Msg, error) { + conn, err := t.dialer.DialContext(ctx, N.NetworkTCP, server) + if err != nil { + return nil, err + } + defer conn.Close() + if deadline, loaded := ctx.Deadline(); loaded && !deadline.IsZero() { + newDeadline := time.Now().Add(timeout) + if deadline.After(newDeadline) { + deadline = newDeadline + } + conn.SetDeadline(deadline) + } + err = transport.WriteMessage(conn, 0, request) + if err != nil { + return nil, err + } + return transport.ReadMessage(conn) } diff --git a/sing-box/docs/changelog.md b/sing-box/docs/changelog.md index 671f4ae52f..be0ea8b8fc 100644 --- a/sing-box/docs/changelog.md +++ b/sing-box/docs/changelog.md @@ -2,6 +2,14 @@ icon: material/alert-decagram --- +#### 1.13.0-alpha.12 + +* Fixes and improvements + +#### 1.12.6 + +* Fixes and improvements + #### 1.13.0-alpha.11 * Fixes and improvements diff --git a/sing-box/protocol/group/urltest.go b/sing-box/protocol/group/urltest.go index 8b28810752..26967279db 100644 --- a/sing-box/protocol/group/urltest.go +++ b/sing-box/protocol/group/urltest.go @@ -14,7 +14,7 @@ import ( C "github.com/sagernet/sing-box/constant" "github.com/sagernet/sing-box/log" "github.com/sagernet/sing-box/option" - tun "github.com/sagernet/sing-tun" + "github.com/sagernet/sing-tun" "github.com/sagernet/sing/common" "github.com/sagernet/sing/common/batch" E "github.com/sagernet/sing/common/exceptions" diff --git a/sing-box/route/rule/rule_set_local.go b/sing-box/route/rule/rule_set_local.go index 597f81d499..b09915ed2f 100644 --- a/sing-box/route/rule/rule_set_local.go +++ b/sing-box/route/rule/rule_set_local.go @@ -27,16 +27,16 @@ import ( var _ adapter.RuleSet = (*LocalRuleSet)(nil) type LocalRuleSet struct { - ctx context.Context - logger logger.Logger - tag string - rules []adapter.HeadlessRule - metadata adapter.RuleSetMetadata - fileFormat string - watcher *fswatch.Watcher - callbackAccess sync.Mutex - callbacks list.List[adapter.RuleSetUpdateCallback] - refs atomic.Int32 + ctx context.Context + logger logger.Logger + tag string + access sync.RWMutex + rules []adapter.HeadlessRule + metadata adapter.RuleSetMetadata + fileFormat string + watcher *fswatch.Watcher + callbacks list.List[adapter.RuleSetUpdateCallback] + refs atomic.Int32 } func NewLocalRuleSet(ctx context.Context, logger logger.Logger, options option.RuleSet) (*LocalRuleSet, error) { @@ -141,11 +141,11 @@ func (s *LocalRuleSet) reloadRules(headlessRules []option.HeadlessRule) error { metadata.ContainsProcessRule = HasHeadlessRule(headlessRules, isProcessHeadlessRule) metadata.ContainsWIFIRule = HasHeadlessRule(headlessRules, isWIFIHeadlessRule) metadata.ContainsIPCIDRRule = HasHeadlessRule(headlessRules, isIPCIDRHeadlessRule) + s.access.Lock() s.rules = rules s.metadata = metadata - s.callbackAccess.Lock() callbacks := s.callbacks.Array() - s.callbackAccess.Unlock() + s.access.Unlock() for _, callback := range callbacks { callback(s) } @@ -157,10 +157,14 @@ func (s *LocalRuleSet) PostStart() error { } func (s *LocalRuleSet) Metadata() adapter.RuleSetMetadata { + s.access.RLock() + defer s.access.RUnlock() return s.metadata } func (s *LocalRuleSet) ExtractIPSet() []*netipx.IPSet { + s.access.RLock() + defer s.access.RUnlock() return common.FlatMap(s.rules, extractIPSetFromRule) } @@ -181,14 +185,14 @@ func (s *LocalRuleSet) Cleanup() { } func (s *LocalRuleSet) RegisterCallback(callback adapter.RuleSetUpdateCallback) *list.Element[adapter.RuleSetUpdateCallback] { - s.callbackAccess.Lock() - defer s.callbackAccess.Unlock() + s.access.Lock() + defer s.access.Unlock() return s.callbacks.PushBack(callback) } func (s *LocalRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback]) { - s.callbackAccess.Lock() - defer s.callbackAccess.Unlock() + s.access.Lock() + defer s.access.Unlock() s.callbacks.Remove(element) } diff --git a/sing-box/route/rule/rule_set_remote.go b/sing-box/route/rule/rule_set_remote.go index d4c6288921..3aba76bab6 100644 --- a/sing-box/route/rule/rule_set_remote.go +++ b/sing-box/route/rule/rule_set_remote.go @@ -40,16 +40,16 @@ type RemoteRuleSet struct { logger logger.ContextLogger outbound adapter.OutboundManager options option.RuleSet - metadata adapter.RuleSetMetadata updateInterval time.Duration dialer N.Dialer + access sync.RWMutex rules []adapter.HeadlessRule + metadata adapter.RuleSetMetadata lastUpdated time.Time lastEtag string updateTicker *time.Ticker cacheFile adapter.CacheFile pauseManager pause.Manager - callbackAccess sync.Mutex callbacks list.List[adapter.RuleSetUpdateCallback] refs atomic.Int32 } @@ -120,10 +120,14 @@ func (s *RemoteRuleSet) PostStart() error { } func (s *RemoteRuleSet) Metadata() adapter.RuleSetMetadata { + s.access.RLock() + defer s.access.RUnlock() return s.metadata } func (s *RemoteRuleSet) ExtractIPSet() []*netipx.IPSet { + s.access.RLock() + defer s.access.RUnlock() return common.FlatMap(s.rules, extractIPSetFromRule) } @@ -144,14 +148,14 @@ func (s *RemoteRuleSet) Cleanup() { } func (s *RemoteRuleSet) RegisterCallback(callback adapter.RuleSetUpdateCallback) *list.Element[adapter.RuleSetUpdateCallback] { - s.callbackAccess.Lock() - defer s.callbackAccess.Unlock() + s.access.Lock() + defer s.access.Unlock() return s.callbacks.PushBack(callback) } func (s *RemoteRuleSet) UnregisterCallback(element *list.Element[adapter.RuleSetUpdateCallback]) { - s.callbackAccess.Lock() - defer s.callbackAccess.Unlock() + s.access.Lock() + defer s.access.Unlock() s.callbacks.Remove(element) } @@ -185,13 +189,13 @@ func (s *RemoteRuleSet) loadBytes(content []byte) error { return E.Cause(err, "parse rule_set.rules.[", i, "]") } } + s.access.Lock() s.metadata.ContainsProcessRule = HasHeadlessRule(plainRuleSet.Rules, isProcessHeadlessRule) s.metadata.ContainsWIFIRule = HasHeadlessRule(plainRuleSet.Rules, isWIFIHeadlessRule) s.metadata.ContainsIPCIDRRule = HasHeadlessRule(plainRuleSet.Rules, isIPCIDRHeadlessRule) s.rules = rules - s.callbackAccess.Lock() callbacks := s.callbacks.Array() - s.callbackAccess.Unlock() + s.access.Unlock() for _, callback := range callbacks { callback(s) } diff --git a/small/hysteria/Makefile b/small/hysteria/Makefile index ca3259cb7b..b488e9ec73 100644 --- a/small/hysteria/Makefile +++ b/small/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.6.2 +PKG_VERSION:=2.6.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=4699431f0bc826da2bbd3939c0a78c4e7bfc02773fc3a62b24615c37ee89b266 +PKG_HASH:=bed1ece93dfaa07fbf709136efadaf4ccb09e0375844de3e28c5644ebe518eb0 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT diff --git a/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js b/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js index d7dd784fcf..ecaa2e3d65 100644 --- a/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js +++ b/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/server.js @@ -711,39 +711,37 @@ return view.extend({ o.modalonly = true; } - if (features.with_reality_server) { - o = s.option(form.Flag, 'tls_reality', _('REALITY')); - o.depends({'tls': '1', 'tls_acme': '0', 'type': 'vless'}); - o.depends({'tls': '1', 'tls_acme': null, 'type': 'vless'}); - o.modalonly = true; + o = s.option(form.Flag, 'tls_reality', _('REALITY')); + o.depends({'tls': '1', 'tls_acme': '0', 'type': /^(anytls|vless)$/}); + o.depends({'tls': '1', 'tls_acme': null, 'type': /^(anytls|vless)$/}); + o.modalonly = true; - o = s.option(form.Value, 'tls_reality_private_key', _('REALITY private key')); - o.depends('tls_reality', '1'); - o.rmempty = false; - o.modalonly = true; + o = s.option(form.Value, 'tls_reality_private_key', _('REALITY private key')); + o.depends('tls_reality', '1'); + o.rmempty = false; + o.modalonly = true; - o = s.option(form.DynamicList, 'tls_reality_short_id', _('REALITY short ID')); - o.depends('tls_reality', '1'); - o.rmempty = false; - o.modalonly = true; + o = s.option(form.DynamicList, 'tls_reality_short_id', _('REALITY short ID')); + o.depends('tls_reality', '1'); + o.rmempty = false; + o.modalonly = true; - o = s.option(form.Value, 'tls_reality_max_time_difference', _('Max time difference'), - _('The maximum time difference between the server and the client.')); - o.depends('tls_reality', '1'); - o.modalonly = true; + o = s.option(form.Value, 'tls_reality_max_time_difference', _('Max time difference'), + _('The maximum time difference between the server and the client.')); + o.depends('tls_reality', '1'); + o.modalonly = true; - o = s.option(form.Value, 'tls_reality_server_addr', _('Handshake server address')); - o.datatype = 'hostname'; - o.depends('tls_reality', '1'); - o.rmempty = false; - o.modalonly = true; + o = s.option(form.Value, 'tls_reality_server_addr', _('Handshake server address')); + o.datatype = 'hostname'; + o.depends('tls_reality', '1'); + o.rmempty = false; + o.modalonly = true; - o = s.option(form.Value, 'tls_reality_server_port', _('Handshake server port')); - o.datatype = 'port'; - o.depends('tls_reality', '1'); - o.rmempty = false; - o.modalonly = true; - } + o = s.option(form.Value, 'tls_reality_server_port', _('Handshake server port')); + o.datatype = 'port'; + o.depends('tls_reality', '1'); + o.rmempty = false; + o.modalonly = true; o = s.option(form.Value, 'tls_cert_path', _('Certificate path'), _('The server public key, in PEM format.')); diff --git a/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js b/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js index 1ef6e4cdaf..aa05f53e69 100644 --- a/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js +++ b/small/luci-app-homeproxy/htdocs/luci-static/resources/view/homeproxy/status.js @@ -31,7 +31,7 @@ const css = ' \ const hp_dir = '/var/run/homeproxy'; -function getConnStat(self, site) { +function getConnStat(o, site) { const callConnStat = rpc.declare({ object: 'luci.homeproxy', method: 'connection_check', @@ -39,12 +39,12 @@ function getConnStat(self, site) { expect: { '': {} } }); - self.default = E('div', { 'style': 'cbi-value-field' }, [ + o.default = E('div', { 'style': 'cbi-value-field' }, [ E('button', { 'class': 'btn cbi-button cbi-button-action', 'click': ui.createHandlerFn(this, function() { return L.resolveDefault(callConnStat(site), {}).then((ret) => { - let ele = self.default.firstElementChild.nextElementSibling; + let ele = o.default.firstElementChild.nextElementSibling; if (ret.result) { ele.style.setProperty('color', 'green'); ele.innerHTML = _('passed'); @@ -60,7 +60,7 @@ function getConnStat(self, site) { ]); } -function getResVersion(self, type) { +function getResVersion(o, type) { const callResVersion = rpc.declare({ object: 'luci.homeproxy', method: 'resources_get_version', @@ -83,23 +83,23 @@ function getResVersion(self, type) { return L.resolveDefault(callResUpdate(type), {}).then((res) => { switch (res.status) { case 0: - self.description = _('Successfully updated.'); + o.description = _('Successfully updated.'); break; case 1: - self.description = _('Update failed.'); + o.description = _('Update failed.'); break; case 2: - self.description = _('Already in updating.'); + o.description = _('Already in updating.'); break; case 3: - self.description = _('Already at the latest version.'); + o.description = _('Already at the latest version.'); break; default: - self.description = _('Unknown error.'); + o.description = _('Unknown error.'); break; } - return self.map.reset(); + return o.map.reset(); }); }) }, [ _('Check update') ]), @@ -109,11 +109,57 @@ function getResVersion(self, type) { ), ]); - self.default = spanTemp; + o.default = spanTemp; }); } -function getRuntimeLog(name, filename) { +function getRuntimeLog(o, name, _option_index, section_id, _in_table) { + const filename = o.option.split('_')[1]; + + let section, log_level_el; + switch (filename) { + case 'homeproxy': + section = null; + break; + case 'sing-box-c': + section = 'config'; + break; + case 'sing-box-s': + section = 'server'; + break; + } + + if (section) { + const selected = uci.get('homeproxy', section, 'log_level') || 'warn'; + const choices = { + trace: _('Trace'), + debug: _('Debug'), + info: _('Info'), + warn: _('Warn'), + error: _('Error'), + fatal: _('Fatal'), + panic: _('Panic') + }; + + log_level_el = E('select', { + 'id': o.cbid(section_id), + 'class': 'cbi-input-select', + 'style': 'margin-left: 4px; width: 6em;', + 'change': ui.createHandlerFn(this, function(ev) { + uci.set('homeproxy', section, 'log_level', ev.target.value); + ui.changes.apply(true); + return o.map.save(null, true); + }) + }); + + Object.keys(choices).forEach((v) => { + log_level_el.appendChild(E('option', { + 'value': v, + 'selected': (v === selected) ? '' : null + }, [ choices[v] ])); + }); + } + const callLogClean = rpc.declare({ object: 'luci.homeproxy', method: 'log_clean', @@ -121,7 +167,7 @@ function getRuntimeLog(name, filename) { expect: { '': {} } }); - let log_textarea = E('div', { 'id': 'log_textarea' }, + const log_textarea = E('div', { 'id': 'log_textarea' }, E('img', { 'src': L.resource('icons/loading.svg'), 'alt': _('Loading'), @@ -155,11 +201,12 @@ function getRuntimeLog(name, filename) { return E([ E('style', [ css ]), E('div', {'class': 'cbi-map'}, [ - E('h3', {'name': 'content'}, [ + E('h3', {'name': 'content', 'style': 'align-items: center; display: flex;'}, [ _('%s log').format(name), - ' ', + log_level_el || '', E('button', { 'class': 'btn cbi-button cbi-button-action', + 'style': 'margin-left: 4px;', 'click': ui.createHandlerFn(this, function() { return L.resolveDefault(callLogClean(filename), {}); }) @@ -185,29 +232,28 @@ return view.extend({ s.anonymous = true; o = s.option(form.DummyValue, '_check_baidu', _('BaiDu')); - o.cfgvalue = function() { return getConnStat(this, 'baidu') }; + o.cfgvalue = L.bind(getConnStat, this, o, 'baidu'); o = s.option(form.DummyValue, '_check_google', _('Google')); - o.cfgvalue = function() { return getConnStat(this, 'google') }; - + o.cfgvalue = L.bind(getConnStat, this, o, 'google'); s = m.section(form.NamedSection, 'config', 'homeproxy', _('Resources management')); s.anonymous = true; o = s.option(form.DummyValue, '_china_ip4_version', _('China IPv4 list version')); - o.cfgvalue = function() { return getResVersion(this, 'china_ip4') }; + o.cfgvalue = L.bind(getResVersion, this, o, 'china_ip4'); o.rawhtml = true; o = s.option(form.DummyValue, '_china_ip6_version', _('China IPv6 list version')); - o.cfgvalue = function() { return getResVersion(this, 'china_ip6') }; + o.cfgvalue = L.bind(getResVersion, this, o, 'china_ip6'); o.rawhtml = true; o = s.option(form.DummyValue, '_china_list_version', _('China list version')); - o.cfgvalue = function() { return getResVersion(this, 'china_list') }; + o.cfgvalue = L.bind(getResVersion, this, o, 'china_list'); o.rawhtml = true; o = s.option(form.DummyValue, '_gfw_list_version', _('GFW list version')); - o.cfgvalue = function() { return getResVersion(this, 'gfw_list') }; + o.cfgvalue = L.bind(getResVersion, this, o, 'gfw_list'); o.rawhtml = true; o = s.option(form.Value, 'github_token', _('GitHub token')); @@ -231,13 +277,13 @@ return view.extend({ s.anonymous = true; o = s.option(form.DummyValue, '_homeproxy_logview'); - o.render = L.bind(getRuntimeLog, this, _('HomeProxy'), 'homeproxy'); + o.render = L.bind(getRuntimeLog, this, o, _('HomeProxy')); o = s.option(form.DummyValue, '_sing-box-c_logview'); - o.render = L.bind(getRuntimeLog, this, _('sing-box client'), 'sing-box-c'); + o.render = L.bind(getRuntimeLog, this, o, _('sing-box client')); o = s.option(form.DummyValue, '_sing-box-s_logview'); - o.render = L.bind(getRuntimeLog, this, _('sing-box server'), 'sing-box-s'); + o.render = L.bind(getRuntimeLog, this, o, _('sing-box server')); return m.render(); }, diff --git a/small/luci-app-homeproxy/po/templates/homeproxy.pot b/small/luci-app-homeproxy/po/templates/homeproxy.pot index 77cc4ae7fb..999fadbe84 100644 --- a/small/luci-app-homeproxy/po/templates/homeproxy.pot +++ b/small/luci-app-homeproxy/po/templates/homeproxy.pot @@ -1,11 +1,11 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: htdocs/luci-static/resources/view/homeproxy/status.js:159 +#: htdocs/luci-static/resources/view/homeproxy/status.js:205 msgid "%s log" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1454 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1449 msgid "%s nodes removed" msgstr "" @@ -25,9 +25,9 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1082 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1106 -#: htdocs/luci-static/resources/view/homeproxy/server.js:760 -#: htdocs/luci-static/resources/view/homeproxy/server.js:779 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1101 +#: htdocs/luci-static/resources/view/homeproxy/server.js:758 +#: htdocs/luci-static/resources/view/homeproxy/server.js:777 msgid "Save your configuration before uploading files!" msgstr "" @@ -123,7 +123,7 @@ msgid "Allow access from the Internet." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1036 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1381 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1376 msgid "Allow insecure" msgstr "" @@ -131,7 +131,7 @@ msgstr "" msgid "Allow insecure connection at TLS client." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1382 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1377 msgid "Allow insecure connection by default when add nodes from subscriptions." msgstr "" @@ -161,7 +161,7 @@ msgstr "" msgid "Alternative TLS port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1417 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1412 msgid "An error occurred during updating subscriptions: %s" msgstr "" @@ -222,11 +222,11 @@ msgstr "" msgid "Authentication type" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1334 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1329 msgid "Auto update" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1335 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1330 msgid "Auto update subscriptions and geodata." msgstr "" @@ -234,7 +234,7 @@ msgstr "" msgid "BBR" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:187 +#: htdocs/luci-static/resources/view/homeproxy/status.js:234 msgid "BaiDu" msgstr "" @@ -253,7 +253,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:453 #: htdocs/luci-static/resources/view/homeproxy/client.js:1410 -#: htdocs/luci-static/resources/view/homeproxy/server.js:864 +#: htdocs/luci-static/resources/view/homeproxy/server.js:862 msgid "Bind interface" msgstr "" @@ -267,7 +267,7 @@ msgstr "" msgid "BitTorrent" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1368 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1363 msgid "Blacklist mode" msgstr "" @@ -279,7 +279,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:640 #: htdocs/luci-static/resources/view/homeproxy/client.js:1090 #: htdocs/luci-static/resources/view/homeproxy/client.js:1100 -#: htdocs/luci-static/resources/view/homeproxy/server.js:859 +#: htdocs/luci-static/resources/view/homeproxy/server.js:857 msgid "Both" msgstr "" @@ -307,12 +307,12 @@ msgstr "" msgid "CUBIC" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1238 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1233 msgid "Cancel" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1073 -#: htdocs/luci-static/resources/view/homeproxy/server.js:748 +#: htdocs/luci-static/resources/view/homeproxy/server.js:746 msgid "Certificate path" msgstr "" @@ -328,15 +328,15 @@ msgstr "" msgid "China DNS server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:197 +#: htdocs/luci-static/resources/view/homeproxy/status.js:243 msgid "China IPv4 list version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:201 +#: htdocs/luci-static/resources/view/homeproxy/status.js:247 msgid "China IPv6 list version" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:205 +#: htdocs/luci-static/resources/view/homeproxy/status.js:251 msgid "China list version" msgstr "" @@ -353,7 +353,7 @@ msgstr "" msgid "Cisco Public DNS (208.67.222.222)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:166 +#: htdocs/luci-static/resources/view/homeproxy/status.js:213 msgid "Clean log" msgstr "" @@ -379,7 +379,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:114 #: htdocs/luci-static/resources/view/homeproxy/server.js:122 -#: htdocs/luci-static/resources/view/homeproxy/status.js:129 +#: htdocs/luci-static/resources/view/homeproxy/status.js:175 msgid "Collecting data..." msgstr "" @@ -392,7 +392,7 @@ msgstr "" msgid "Congestion control algorithm" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:184 +#: htdocs/luci-static/resources/view/homeproxy/status.js:231 msgid "Connection check" msgstr "" @@ -439,6 +439,10 @@ msgstr "" msgid "DTLS" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/status.js:136 +msgid "Debug" +msgstr "" + #: htdocs/luci-static/resources/homeproxy.js:17 #: htdocs/luci-static/resources/view/homeproxy/client.js:433 #: htdocs/luci-static/resources/view/homeproxy/client.js:603 @@ -482,7 +486,7 @@ msgstr "" msgid "Default outbound for connections not matched by any routing rules." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1388 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1383 msgid "Default packet encoding" msgstr "" @@ -523,8 +527,8 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:498 #: htdocs/luci-static/resources/view/homeproxy/node.js:554 #: htdocs/luci-static/resources/view/homeproxy/node.js:566 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1117 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1367 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1111 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1362 #: htdocs/luci-static/resources/view/homeproxy/server.js:267 #: htdocs/luci-static/resources/view/homeproxy/server.js:279 msgid "Disable" @@ -645,14 +649,14 @@ msgstr "" msgid "Drop requests" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1374 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1369 msgid "" "Drop/keep nodes that contain the specific keywords. Regex is supported." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1366 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1361 msgid "Drop/keep specific nodes from subscriptions." msgstr "" @@ -664,22 +668,22 @@ msgid "" "a non-ACME system, such as a CA customer database." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1090 msgid "" "ECH (Encrypted Client Hello) is a TLS extension that allows a client to " "encrypt the first part of its ClientHello message." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1110 -#: htdocs/luci-static/resources/view/homeproxy/server.js:825 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 +#: htdocs/luci-static/resources/view/homeproxy/server.js:823 msgid "ECH config" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1099 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 msgid "ECH config path" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:786 +#: htdocs/luci-static/resources/view/homeproxy/server.js:784 msgid "ECH key" msgstr "" @@ -703,7 +707,7 @@ msgstr "" msgid "Early data is sent in path instead of header by default." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1210 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1205 msgid "Edit nodes" msgstr "" @@ -738,14 +742,10 @@ msgstr "" msgid "Enable ACME" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1090 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1089 msgid "Enable ECH" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 -msgid "Enable PQ signature schemes" -msgstr "" - #: htdocs/luci-static/resources/view/homeproxy/node.js:980 #: htdocs/luci-static/resources/view/homeproxy/server.js:522 msgid "Enable TCP Brutal" @@ -756,8 +756,8 @@ msgstr "" msgid "Enable TCP Brutal congestion control algorithm" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1167 -#: htdocs/luci-static/resources/view/homeproxy/server.js:845 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1162 +#: htdocs/luci-static/resources/view/homeproxy/server.js:843 msgid "Enable UDP fragmentation." msgstr "" @@ -770,11 +770,11 @@ msgstr "" msgid "Enable padding" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:836 +#: htdocs/luci-static/resources/view/homeproxy/server.js:834 msgid "Enable tcp fast open for listener." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1166 msgid "" "Enable the SUoT protocol, requires server support. Conflict with multiplex." msgstr "" @@ -785,6 +785,10 @@ msgstr "" msgid "Encrypt method" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/status.js:139 +msgid "Error" +msgstr "" + #: htdocs/luci-static/resources/homeproxy.js:237 #: htdocs/luci-static/resources/homeproxy.js:271 #: htdocs/luci-static/resources/homeproxy.js:279 @@ -809,10 +813,10 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:1505 #: htdocs/luci-static/resources/view/homeproxy/client.js:1537 #: htdocs/luci-static/resources/view/homeproxy/node.js:487 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1133 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1301 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1355 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1127 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1296 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1353 #: htdocs/luci-static/resources/view/homeproxy/server.js:226 #: htdocs/luci-static/resources/view/homeproxy/server.js:628 #: htdocs/luci-static/resources/view/homeproxy/server.js:630 @@ -843,11 +847,15 @@ msgstr "" msgid "Failed to upload %s, error: %s." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1373 +#: htdocs/luci-static/resources/view/homeproxy/status.js:140 +msgid "Fatal" +msgstr "" + +#: htdocs/luci-static/resources/view/homeproxy/node.js:1368 msgid "Filter keywords" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1365 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1360 msgid "Filter nodes" msgstr "" @@ -889,7 +897,7 @@ msgstr "" msgid "GET" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:209 +#: htdocs/luci-static/resources/view/homeproxy/status.js:255 msgid "GFW list version" msgstr "" @@ -915,11 +923,11 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/server.js:294 #: htdocs/luci-static/resources/view/homeproxy/server.js:355 #: htdocs/luci-static/resources/view/homeproxy/server.js:357 -#: htdocs/luci-static/resources/view/homeproxy/server.js:817 +#: htdocs/luci-static/resources/view/homeproxy/server.js:815 msgid "Generate" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:213 +#: htdocs/luci-static/resources/view/homeproxy/status.js:259 msgid "GitHub token" msgstr "" @@ -947,7 +955,7 @@ msgstr "" msgid "Global settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:190 +#: htdocs/luci-static/resources/view/homeproxy/status.js:237 msgid "Google" msgstr "" @@ -987,11 +995,11 @@ msgstr "" msgid "HTTPUpgrade" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:735 +#: htdocs/luci-static/resources/view/homeproxy/server.js:734 msgid "Handshake server address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:741 +#: htdocs/luci-static/resources/view/homeproxy/server.js:740 msgid "Handshake server port" msgstr "" @@ -1007,7 +1015,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:55 #: htdocs/luci-static/resources/view/homeproxy/client.js:57 #: htdocs/luci-static/resources/view/homeproxy/client.js:101 -#: htdocs/luci-static/resources/view/homeproxy/status.js:234 +#: htdocs/luci-static/resources/view/homeproxy/status.js:280 #: root/usr/share/luci/menu.d/luci-app-homeproxy.json:3 msgid "HomeProxy" msgstr "" @@ -1150,18 +1158,18 @@ msgstr "" msgid "Ignore client bandwidth" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1284 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1279 msgid "Import" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1231 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1310 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1312 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1226 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1305 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1307 msgid "Import share links" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:336 -#: htdocs/luci-static/resources/view/homeproxy/server.js:850 +#: htdocs/luci-static/resources/view/homeproxy/server.js:848 msgid "In seconds." msgstr "" @@ -1184,6 +1192,10 @@ msgstr "" msgid "Independent cache per server" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/status.js:137 +msgid "Info" +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/client.js:1403 msgid "Interface Control" msgstr "" @@ -1217,7 +1229,7 @@ msgstr "" msgid "Invert match result." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:767 +#: htdocs/luci-static/resources/view/homeproxy/server.js:765 msgid "Key path" msgstr "" @@ -1290,7 +1302,7 @@ msgstr "" msgid "Listen port" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:127 +#: htdocs/luci-static/resources/view/homeproxy/status.js:173 msgid "Loading" msgstr "" @@ -1302,11 +1314,11 @@ msgstr "" msgid "Local address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:144 +#: htdocs/luci-static/resources/view/homeproxy/status.js:190 msgid "Log file does not exist." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:137 +#: htdocs/luci-static/resources/view/homeproxy/status.js:183 msgid "Log is empty." msgstr "" @@ -1451,7 +1463,7 @@ msgstr "" msgid "Max download speed in Mbps." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:730 +#: htdocs/luci-static/resources/view/homeproxy/server.js:729 msgid "Max time difference" msgstr "" @@ -1527,8 +1539,8 @@ msgstr "" msgid "Mode" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1163 -#: htdocs/luci-static/resources/view/homeproxy/server.js:840 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1158 +#: htdocs/luci-static/resources/view/homeproxy/server.js:838 msgid "MultiPath TCP" msgstr "" @@ -1546,7 +1558,7 @@ msgstr "" msgid "NOT RUNNING" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1394 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1389 msgid "NOTE: Save current settings before updating subscriptions." msgstr "" @@ -1564,7 +1576,7 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:637 #: htdocs/luci-static/resources/view/homeproxy/client.js:1097 -#: htdocs/luci-static/resources/view/homeproxy/server.js:856 +#: htdocs/luci-static/resources/view/homeproxy/server.js:854 msgid "Network" msgstr "" @@ -1584,15 +1596,15 @@ msgstr "" msgid "No additional encryption support: It's basically duplicate encryption." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1410 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1405 msgid "No subscription available" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1435 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1430 msgid "No subscription node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1270 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1265 msgid "No valid share link found." msgstr "" @@ -1605,7 +1617,7 @@ msgstr "" msgid "Node Settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1216 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1211 msgid "Nodes" msgstr "" @@ -1687,6 +1699,10 @@ msgstr "" msgid "Padding scheme" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/status.js:141 +msgid "Panic" +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:463 #: htdocs/luci-static/resources/view/homeproxy/server.js:190 msgid "Password" @@ -1899,21 +1915,21 @@ msgstr "" msgid "RDRC timeout" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1144 -#: htdocs/luci-static/resources/view/homeproxy/server.js:715 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1138 +#: htdocs/luci-static/resources/view/homeproxy/server.js:714 msgid "REALITY" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:720 +#: htdocs/luci-static/resources/view/homeproxy/server.js:719 msgid "REALITY private key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1143 msgid "REALITY public key" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1153 -#: htdocs/luci-static/resources/view/homeproxy/server.js:725 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 +#: htdocs/luci-static/resources/view/homeproxy/server.js:724 msgid "REALITY short ID" msgstr "" @@ -1946,7 +1962,7 @@ msgstr "" msgid "Redirect TCP + Tun UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:171 +#: htdocs/luci-static/resources/view/homeproxy/status.js:218 msgid "Refresh every %s seconds." msgstr "" @@ -1963,11 +1979,11 @@ msgstr "" msgid "Remote" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1432 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1427 msgid "Remove %s nodes" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1422 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1417 msgid "Remove all nodes from subscriptions" msgstr "" @@ -1991,15 +2007,15 @@ msgstr "" msgid "Resolve strategy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:194 +#: htdocs/luci-static/resources/view/homeproxy/status.js:240 msgid "Resources management" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:870 +#: htdocs/luci-static/resources/view/homeproxy/server.js:868 msgid "Reuse address" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:871 +#: htdocs/luci-static/resources/view/homeproxy/server.js:869 msgid "Reuse listener address." msgstr "" @@ -2081,7 +2097,7 @@ msgstr "" msgid "STUN" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1176 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 msgid "SUoT version" msgstr "" @@ -2098,16 +2114,16 @@ msgstr "" msgid "Same as main node" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:220 -#: htdocs/luci-static/resources/view/homeproxy/status.js:225 +#: htdocs/luci-static/resources/view/homeproxy/status.js:266 +#: htdocs/luci-static/resources/view/homeproxy/status.js:271 msgid "Save" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1396 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1391 msgid "Save current settings" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1393 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1388 msgid "Save subscriptions settings" msgstr "" @@ -2254,19 +2270,19 @@ msgstr "" msgid "String" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1321 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 msgid "Sub (%s)" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1348 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1343 msgid "Subscription URL-s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1332 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1327 msgid "Subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1272 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1267 msgid "Successfully imported %s nodes of total %s." msgstr "" @@ -2274,8 +2290,8 @@ msgstr "" msgid "Successfully updated." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1232 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1349 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1227 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1344 msgid "" "Support Hysteria, Shadowsocks, Trojan, v2rayN (VMess), and XTLS (VLESS) " "online configuration delivery standard." @@ -2302,12 +2318,12 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:638 #: htdocs/luci-static/resources/view/homeproxy/client.js:949 #: htdocs/luci-static/resources/view/homeproxy/client.js:1098 -#: htdocs/luci-static/resources/view/homeproxy/server.js:857 +#: htdocs/luci-static/resources/view/homeproxy/server.js:855 msgid "TCP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1160 -#: htdocs/luci-static/resources/view/homeproxy/server.js:835 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1155 +#: htdocs/luci-static/resources/view/homeproxy/server.js:833 msgid "TCP fast open" msgstr "" @@ -2507,7 +2523,7 @@ msgid "" "allowed to open." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:731 +#: htdocs/luci-static/resources/view/homeproxy/server.js:730 msgid "The maximum time difference between the server and the client." msgstr "" @@ -2522,7 +2538,7 @@ msgid "The modern ImmortalWrt proxy platform for ARM64/AMD64." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:454 -#: htdocs/luci-static/resources/view/homeproxy/server.js:865 +#: htdocs/luci-static/resources/view/homeproxy/server.js:863 msgid "The network interface to bind to." msgstr "" @@ -2530,7 +2546,7 @@ msgstr "" msgid "The path of the DNS server." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1100 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 msgid "" "The path to the ECH config, in PEM format. If empty, load from DNS will be " "attempted." @@ -2552,11 +2568,11 @@ msgstr "" msgid "The response code." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:768 +#: htdocs/luci-static/resources/view/homeproxy/server.js:766 msgid "The server private key, in PEM format." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:749 +#: htdocs/luci-static/resources/view/homeproxy/server.js:747 msgid "The server public key, in PEM format." msgstr "" @@ -2587,7 +2603,7 @@ msgid "" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1039 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1384 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1379 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -2628,6 +2644,10 @@ msgid "" "kmod-tun" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/status.js:135 +msgid "Trace" +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:769 #: htdocs/luci-static/resources/view/homeproxy/server.js:409 msgid "Transport" @@ -2657,21 +2677,21 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:639 #: htdocs/luci-static/resources/view/homeproxy/client.js:948 #: htdocs/luci-static/resources/view/homeproxy/client.js:1099 -#: htdocs/luci-static/resources/view/homeproxy/server.js:858 +#: htdocs/luci-static/resources/view/homeproxy/server.js:856 msgid "UDP" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1166 -#: htdocs/luci-static/resources/view/homeproxy/server.js:844 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1161 +#: htdocs/luci-static/resources/view/homeproxy/server.js:842 msgid "UDP Fragment" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:335 -#: htdocs/luci-static/resources/view/homeproxy/server.js:849 +#: htdocs/luci-static/resources/view/homeproxy/server.js:847 msgid "UDP NAT expiration time" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1170 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1165 msgid "UDP over TCP" msgstr "" @@ -2712,15 +2732,15 @@ msgstr "" msgid "Unknown error." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:148 +#: htdocs/luci-static/resources/view/homeproxy/status.js:194 msgid "Unknown error: %s" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1137 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1131 msgid "Unsupported fingerprint!" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1407 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1402 msgid "Update %s subscriptions" msgstr "" @@ -2736,23 +2756,23 @@ msgstr "" msgid "Update interval of rule set." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1402 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1397 msgid "Update nodes from subscriptions" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1345 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1340 msgid "Update subscriptions via proxy." msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1338 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1333 msgid "Update time" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1344 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1339 msgid "Update via proxy" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1100 msgid "Upload ECH config" msgstr "" @@ -2767,18 +2787,18 @@ msgid "Upload bandwidth in Mbps." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1081 -#: htdocs/luci-static/resources/view/homeproxy/server.js:759 +#: htdocs/luci-static/resources/view/homeproxy/server.js:757 msgid "Upload certificate" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:778 +#: htdocs/luci-static/resources/view/homeproxy/server.js:776 msgid "Upload key" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1084 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1108 -#: htdocs/luci-static/resources/view/homeproxy/server.js:762 -#: htdocs/luci-static/resources/view/homeproxy/server.js:781 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1103 +#: htdocs/luci-static/resources/view/homeproxy/server.js:760 +#: htdocs/luci-static/resources/view/homeproxy/server.js:779 msgid "Upload..." msgstr "" @@ -2802,7 +2822,7 @@ msgstr "" msgid "User" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1378 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1373 msgid "User-Agent" msgstr "" @@ -2830,12 +2850,16 @@ msgstr "" msgid "WAN IP Policy" msgstr "" +#: htdocs/luci-static/resources/view/homeproxy/status.js:138 +msgid "Warn" +msgstr "" + #: htdocs/luci-static/resources/view/homeproxy/node.js:776 #: htdocs/luci-static/resources/view/homeproxy/server.js:416 msgid "WebSocket" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1369 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1364 msgid "Whitelist mode" msgstr "" @@ -2860,7 +2884,7 @@ msgid "Write proxy protocol in the connection header." msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:885 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1391 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1386 msgid "Xudp (Xray-core)" msgstr "" @@ -2873,7 +2897,7 @@ msgid "ZeroSSL" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:1086 -#: htdocs/luci-static/resources/view/homeproxy/server.js:764 +#: htdocs/luci-static/resources/view/homeproxy/server.js:762 msgid "certificate" msgstr "" @@ -2917,19 +2941,19 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:504 #: htdocs/luci-static/resources/view/homeproxy/client.js:1355 #: htdocs/luci-static/resources/view/homeproxy/node.js:487 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1133 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1127 #: htdocs/luci-static/resources/view/homeproxy/server.js:226 msgid "non-empty value" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:628 #: htdocs/luci-static/resources/view/homeproxy/node.js:883 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1389 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1384 msgid "none" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:884 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1390 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1385 msgid "packet addr (v2ray-core v5+)" msgstr "" @@ -2937,7 +2961,7 @@ msgstr "" msgid "passed" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/server.js:783 +#: htdocs/luci-static/resources/view/homeproxy/server.js:781 msgid "private key" msgstr "" @@ -2945,19 +2969,19 @@ msgstr "" msgid "quic-go / uquic chrome" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:237 +#: htdocs/luci-static/resources/view/homeproxy/status.js:283 msgid "sing-box client" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/status.js:240 +#: htdocs/luci-static/resources/view/homeproxy/status.js:286 msgid "sing-box server" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1109 msgid "uTLS fingerprint" msgstr "" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1116 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1110 msgid "" "uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting " "resistance." @@ -2968,7 +2992,7 @@ msgid "unchecked" msgstr "" #: htdocs/luci-static/resources/homeproxy.js:237 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1301 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1296 msgid "unique UCI identifier" msgstr "" @@ -2978,13 +3002,13 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:499 #: htdocs/luci-static/resources/view/homeproxy/node.js:642 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1177 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1172 msgid "v1" msgstr "" #: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/node.js:643 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1178 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1173 msgid "v2" msgstr "" @@ -3003,8 +3027,8 @@ msgstr "" #: htdocs/luci-static/resources/view/homeproxy/client.js:521 #: htdocs/luci-static/resources/view/homeproxy/client.js:1360 #: htdocs/luci-static/resources/view/homeproxy/client.js:1363 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1355 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1353 msgid "valid URL" msgstr "" diff --git a/small/luci-app-homeproxy/po/zh_Hans/homeproxy.po b/small/luci-app-homeproxy/po/zh_Hans/homeproxy.po index 5508d07ec2..6655225c1b 100644 --- a/small/luci-app-homeproxy/po/zh_Hans/homeproxy.po +++ b/small/luci-app-homeproxy/po/zh_Hans/homeproxy.po @@ -8,11 +8,11 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -#: htdocs/luci-static/resources/view/homeproxy/status.js:159 +#: htdocs/luci-static/resources/view/homeproxy/status.js:205 msgid "%s log" msgstr "%s 日志" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1454 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1449 msgid "%s nodes removed" msgstr "移除了 %s 个节点" @@ -34,9 +34,9 @@ msgstr "" "%s。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1082 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1106 -#: htdocs/luci-static/resources/view/homeproxy/server.js:760 -#: htdocs/luci-static/resources/view/homeproxy/server.js:779 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1101 +#: htdocs/luci-static/resources/view/homeproxy/server.js:758 +#: htdocs/luci-static/resources/view/homeproxy/server.js:777 msgid "Save your configuration before uploading files!" msgstr "上传文件前请先保存配置!" @@ -132,7 +132,7 @@ msgid "Allow access from the Internet." msgstr "允许来自互联网的访问。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1036 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1381 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1376 msgid "Allow insecure" msgstr "允许不安全连接" @@ -140,7 +140,7 @@ msgstr "允许不安全连接" msgid "Allow insecure connection at TLS client." msgstr "允许 TLS 客户端侧的不安全连接。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1382 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1377 msgid "Allow insecure connection by default when add nodes from subscriptions." msgstr "从订阅获取节点时,默认允许不安全连接。" @@ -170,7 +170,7 @@ msgstr "替代 HTTP 端口" msgid "Alternative TLS port" msgstr "替代 HTTPS 端口" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1417 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1412 msgid "An error occurred during updating subscriptions: %s" msgstr "更新订阅时发生错误:%s" @@ -233,11 +233,11 @@ msgstr "认证载荷" msgid "Authentication type" msgstr "认证类型" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1334 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1329 msgid "Auto update" msgstr "自动更新" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1335 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1330 msgid "Auto update subscriptions and geodata." msgstr "自动更新订阅和地理数据。" @@ -245,7 +245,7 @@ msgstr "自动更新订阅和地理数据。" msgid "BBR" msgstr "BBR" -#: htdocs/luci-static/resources/view/homeproxy/status.js:187 +#: htdocs/luci-static/resources/view/homeproxy/status.js:234 msgid "BaiDu" msgstr "百度" @@ -264,7 +264,7 @@ msgstr "二进制文件" #: htdocs/luci-static/resources/view/homeproxy/client.js:453 #: htdocs/luci-static/resources/view/homeproxy/client.js:1410 -#: htdocs/luci-static/resources/view/homeproxy/server.js:864 +#: htdocs/luci-static/resources/view/homeproxy/server.js:862 msgid "Bind interface" msgstr "绑定接口" @@ -278,7 +278,7 @@ msgstr "绑定出站流量至指定端口。留空自动检测。" msgid "BitTorrent" msgstr "BitTorrent" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1368 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1363 msgid "Blacklist mode" msgstr "黑名单模式" @@ -290,7 +290,7 @@ msgstr "封锁" #: htdocs/luci-static/resources/view/homeproxy/client.js:640 #: htdocs/luci-static/resources/view/homeproxy/client.js:1090 #: htdocs/luci-static/resources/view/homeproxy/client.js:1100 -#: htdocs/luci-static/resources/view/homeproxy/server.js:859 +#: htdocs/luci-static/resources/view/homeproxy/server.js:857 msgid "Both" msgstr "全部" @@ -318,12 +318,12 @@ msgstr "CNNIC 公共 DNS(210.2.4.8)" msgid "CUBIC" msgstr "CUBIC" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1238 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1233 msgid "Cancel" msgstr "取消" #: htdocs/luci-static/resources/view/homeproxy/node.js:1073 -#: htdocs/luci-static/resources/view/homeproxy/server.js:748 +#: htdocs/luci-static/resources/view/homeproxy/server.js:746 msgid "Certificate path" msgstr "证书路径" @@ -339,15 +339,15 @@ msgstr "检查更新" msgid "China DNS server" msgstr "国内 DNS 服务器" -#: htdocs/luci-static/resources/view/homeproxy/status.js:197 +#: htdocs/luci-static/resources/view/homeproxy/status.js:243 msgid "China IPv4 list version" msgstr "国内 IPv4 库版本" -#: htdocs/luci-static/resources/view/homeproxy/status.js:201 +#: htdocs/luci-static/resources/view/homeproxy/status.js:247 msgid "China IPv6 list version" msgstr "国内 IPv6 库版本" -#: htdocs/luci-static/resources/view/homeproxy/status.js:205 +#: htdocs/luci-static/resources/view/homeproxy/status.js:251 msgid "China list version" msgstr "国内域名列表版本" @@ -364,7 +364,7 @@ msgstr "密码套件" msgid "Cisco Public DNS (208.67.222.222)" msgstr "思科公共 DNS(208.67.222.222)" -#: htdocs/luci-static/resources/view/homeproxy/status.js:166 +#: htdocs/luci-static/resources/view/homeproxy/status.js:213 msgid "Clean log" msgstr "清空日志" @@ -390,7 +390,7 @@ msgstr "Cloudflare" #: htdocs/luci-static/resources/view/homeproxy/client.js:114 #: htdocs/luci-static/resources/view/homeproxy/server.js:122 -#: htdocs/luci-static/resources/view/homeproxy/status.js:129 +#: htdocs/luci-static/resources/view/homeproxy/status.js:175 msgid "Collecting data..." msgstr "正在收集数据中..." @@ -403,7 +403,7 @@ msgstr "仅常用端口(绕过 P2P 流量)" msgid "Congestion control algorithm" msgstr "拥塞控制算法" -#: htdocs/luci-static/resources/view/homeproxy/status.js:184 +#: htdocs/luci-static/resources/view/homeproxy/status.js:231 msgid "Connection check" msgstr "连接检查" @@ -450,6 +450,10 @@ msgstr "DNS01 验证" msgid "DTLS" msgstr "DTLS" +#: htdocs/luci-static/resources/view/homeproxy/status.js:136 +msgid "Debug" +msgstr "调试" + #: htdocs/luci-static/resources/homeproxy.js:17 #: htdocs/luci-static/resources/view/homeproxy/client.js:433 #: htdocs/luci-static/resources/view/homeproxy/client.js:603 @@ -493,7 +497,7 @@ msgstr "默认出站 DNS" msgid "Default outbound for connections not matched by any routing rules." msgstr "用于未被任何路由规则匹配的连接的默认出站。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1388 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1383 msgid "Default packet encoding" msgstr "默认包封装格式" @@ -534,8 +538,8 @@ msgstr "直连 MAC 地址" #: htdocs/luci-static/resources/view/homeproxy/node.js:498 #: htdocs/luci-static/resources/view/homeproxy/node.js:554 #: htdocs/luci-static/resources/view/homeproxy/node.js:566 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1117 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1367 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1111 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1362 #: htdocs/luci-static/resources/view/homeproxy/server.js:267 #: htdocs/luci-static/resources/view/homeproxy/server.js:279 msgid "Disable" @@ -658,7 +662,7 @@ msgstr "丢弃数据包" msgid "Drop requests" msgstr "丢弃请求" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1374 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1369 msgid "" "Drop/keep nodes that contain the specific keywords. " "正则表达式。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1366 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1361 msgid "Drop/keep specific nodes from subscriptions." msgstr "从订阅中 丢弃/保留 指定节点" @@ -683,7 +687,7 @@ msgstr "" "
外部帐户绑定“用于将 ACME 帐户与非 ACME 系统中的现有帐户相关联,例如 CA " "客户数据库。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1091 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1090 msgid "" "ECH (Encrypted Client Hello) is a TLS extension that allows a client to " "encrypt the first part of its ClientHello message." @@ -691,16 +695,16 @@ msgstr "" "ECH(Encrypted Client Hello)是一个 TLS 扩展,它允许客户端加密其 ClientHello " "信息的第一部分。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1110 -#: htdocs/luci-static/resources/view/homeproxy/server.js:825 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 +#: htdocs/luci-static/resources/view/homeproxy/server.js:823 msgid "ECH config" msgstr "ECH 配置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1099 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1094 msgid "ECH config path" msgstr "ECH 配置路径" -#: htdocs/luci-static/resources/view/homeproxy/server.js:786 +#: htdocs/luci-static/resources/view/homeproxy/server.js:784 msgid "ECH key" msgstr "ECH 密钥" @@ -724,7 +728,7 @@ msgstr "前置数据标头" msgid "Early data is sent in path instead of header by default." msgstr "前置数据默认发送在路径而不是标头中。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1210 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1205 msgid "Edit nodes" msgstr "修改节点" @@ -761,14 +765,10 @@ msgstr "启用 0-RTT 握手" msgid "Enable ACME" msgstr "启用 ACME" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1090 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1089 msgid "Enable ECH" msgstr "启用 ECH" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 -msgid "Enable PQ signature schemes" -msgstr "启用 PQ 签名方案" - #: htdocs/luci-static/resources/view/homeproxy/node.js:980 #: htdocs/luci-static/resources/view/homeproxy/server.js:522 msgid "Enable TCP Brutal" @@ -779,8 +779,8 @@ msgstr "启用 TCP Brutal" msgid "Enable TCP Brutal congestion control algorithm" msgstr "启用 TCP Brutal 拥塞控制算法。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1167 -#: htdocs/luci-static/resources/view/homeproxy/server.js:845 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1162 +#: htdocs/luci-static/resources/view/homeproxy/server.js:843 msgid "Enable UDP fragmentation." msgstr "启用 UDP 分片。" @@ -793,11 +793,11 @@ msgstr "启用端点独立 NAT" msgid "Enable padding" msgstr "启用填充" -#: htdocs/luci-static/resources/view/homeproxy/server.js:836 +#: htdocs/luci-static/resources/view/homeproxy/server.js:834 msgid "Enable tcp fast open for listener." msgstr "为监听器启用 TCP 快速打开。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1166 msgid "" "Enable the SUoT protocol, requires server support. Conflict with multiplex." msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。" @@ -808,6 +808,10 @@ msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。" msgid "Encrypt method" msgstr "加密方式" +#: htdocs/luci-static/resources/view/homeproxy/status.js:139 +msgid "Error" +msgstr "错误" + #: htdocs/luci-static/resources/homeproxy.js:237 #: htdocs/luci-static/resources/homeproxy.js:271 #: htdocs/luci-static/resources/homeproxy.js:279 @@ -832,10 +836,10 @@ msgstr "加密方式" #: htdocs/luci-static/resources/view/homeproxy/client.js:1505 #: htdocs/luci-static/resources/view/homeproxy/client.js:1537 #: htdocs/luci-static/resources/view/homeproxy/node.js:487 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1133 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1301 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1355 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1127 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1296 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1353 #: htdocs/luci-static/resources/view/homeproxy/server.js:226 #: htdocs/luci-static/resources/view/homeproxy/server.js:628 #: htdocs/luci-static/resources/view/homeproxy/server.js:630 @@ -866,11 +870,15 @@ msgstr "生成 %s 失败,错误:%s。" msgid "Failed to upload %s, error: %s." msgstr "上传 %s 失败,错误:%s。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1373 +#: htdocs/luci-static/resources/view/homeproxy/status.js:140 +msgid "Fatal" +msgstr "致命" + +#: htdocs/luci-static/resources/view/homeproxy/node.js:1368 msgid "Filter keywords" msgstr "过滤关键词" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1365 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1360 msgid "Filter nodes" msgstr "过滤节点" @@ -912,7 +920,7 @@ msgstr "分片回退延迟" msgid "GET" msgstr "GET" -#: htdocs/luci-static/resources/view/homeproxy/status.js:209 +#: htdocs/luci-static/resources/view/homeproxy/status.js:255 msgid "GFW list version" msgstr "GFW 域名列表版本" @@ -938,11 +946,11 @@ msgstr "游戏模式 MAC 地址" #: htdocs/luci-static/resources/view/homeproxy/server.js:294 #: htdocs/luci-static/resources/view/homeproxy/server.js:355 #: htdocs/luci-static/resources/view/homeproxy/server.js:357 -#: htdocs/luci-static/resources/view/homeproxy/server.js:817 +#: htdocs/luci-static/resources/view/homeproxy/server.js:815 msgid "Generate" msgstr "生成" -#: htdocs/luci-static/resources/view/homeproxy/status.js:213 +#: htdocs/luci-static/resources/view/homeproxy/status.js:259 msgid "GitHub token" msgstr "GitHub 令牌" @@ -970,7 +978,7 @@ msgstr "全局代理 MAC 地址" msgid "Global settings" msgstr "全局设置" -#: htdocs/luci-static/resources/view/homeproxy/status.js:190 +#: htdocs/luci-static/resources/view/homeproxy/status.js:237 msgid "Google" msgstr "谷歌" @@ -1010,11 +1018,11 @@ msgstr "HTTPS" msgid "HTTPUpgrade" msgstr "HTTPUpgrade" -#: htdocs/luci-static/resources/view/homeproxy/server.js:735 +#: htdocs/luci-static/resources/view/homeproxy/server.js:734 msgid "Handshake server address" msgstr "握手服务器地址" -#: htdocs/luci-static/resources/view/homeproxy/server.js:741 +#: htdocs/luci-static/resources/view/homeproxy/server.js:740 msgid "Handshake server port" msgstr "握手服务器端口" @@ -1030,7 +1038,7 @@ msgstr "心跳间隔" #: htdocs/luci-static/resources/view/homeproxy/client.js:55 #: htdocs/luci-static/resources/view/homeproxy/client.js:57 #: htdocs/luci-static/resources/view/homeproxy/client.js:101 -#: htdocs/luci-static/resources/view/homeproxy/status.js:234 +#: htdocs/luci-static/resources/view/homeproxy/status.js:280 #: root/usr/share/luci/menu.d/luci-app-homeproxy.json:3 msgid "HomeProxy" msgstr "HomeProxy" @@ -1177,18 +1185,18 @@ msgstr "如果你拥有根证书,使用此选项而不是允许不安全连接 msgid "Ignore client bandwidth" msgstr "忽略客户端带宽" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1284 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1279 msgid "Import" msgstr "导入" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1231 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1310 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1312 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1226 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1305 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1307 msgid "Import share links" msgstr "导入分享链接" #: htdocs/luci-static/resources/view/homeproxy/client.js:336 -#: htdocs/luci-static/resources/view/homeproxy/server.js:850 +#: htdocs/luci-static/resources/view/homeproxy/server.js:848 msgid "In seconds." msgstr "单位:秒。" @@ -1211,6 +1219,10 @@ msgstr "在检查中,关闭空闲时间超过此值的会话(单位:秒) msgid "Independent cache per server" msgstr "独立缓存" +#: htdocs/luci-static/resources/view/homeproxy/status.js:137 +msgid "Info" +msgstr "信息" + #: htdocs/luci-static/resources/view/homeproxy/client.js:1403 msgid "Interface Control" msgstr "接口控制" @@ -1244,7 +1256,7 @@ msgstr "反转" msgid "Invert match result." msgstr "反转匹配结果" -#: htdocs/luci-static/resources/view/homeproxy/server.js:767 +#: htdocs/luci-static/resources/view/homeproxy/server.js:765 msgid "Key path" msgstr "证书路径" @@ -1319,7 +1331,7 @@ msgstr "监听接口" msgid "Listen port" msgstr "监听端口" -#: htdocs/luci-static/resources/view/homeproxy/status.js:127 +#: htdocs/luci-static/resources/view/homeproxy/status.js:173 msgid "Loading" msgstr "加载中" @@ -1331,11 +1343,11 @@ msgstr "本地" msgid "Local address" msgstr "本地地址" -#: htdocs/luci-static/resources/view/homeproxy/status.js:144 +#: htdocs/luci-static/resources/view/homeproxy/status.js:190 msgid "Log file does not exist." msgstr "日志文件不存在。" -#: htdocs/luci-static/resources/view/homeproxy/status.js:137 +#: htdocs/luci-static/resources/view/homeproxy/status.js:183 msgid "Log is empty." msgstr "日志为空。" @@ -1480,7 +1492,7 @@ msgstr "最大下载速度" msgid "Max download speed in Mbps." msgstr "最大下载速度(Mbps)。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:730 +#: htdocs/luci-static/resources/view/homeproxy/server.js:729 msgid "Max time difference" msgstr "最大时间差" @@ -1558,8 +1570,8 @@ msgstr "混合系统 TCP 栈和 gVisor UDP 栈。" msgid "Mode" msgstr "模式" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1163 -#: htdocs/luci-static/resources/view/homeproxy/server.js:840 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1158 +#: htdocs/luci-static/resources/view/homeproxy/server.js:838 msgid "MultiPath TCP" msgstr "多路径 TCP(MPTCP)" @@ -1577,7 +1589,7 @@ msgstr "多路复用协议。" msgid "NOT RUNNING" msgstr "未运行" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1394 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1389 msgid "NOTE: Save current settings before updating subscriptions." msgstr "注意:更新订阅前先保存当前配置。" @@ -1595,7 +1607,7 @@ msgstr "NaïveProxy" #: htdocs/luci-static/resources/view/homeproxy/client.js:637 #: htdocs/luci-static/resources/view/homeproxy/client.js:1097 -#: htdocs/luci-static/resources/view/homeproxy/server.js:856 +#: htdocs/luci-static/resources/view/homeproxy/server.js:854 msgid "Network" msgstr "网络" @@ -1615,15 +1627,15 @@ msgstr "无 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。" msgid "No additional encryption support: It's basically duplicate encryption." msgstr "无额外加密支持:它基本上是重复加密。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1410 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1405 msgid "No subscription available" msgstr "无可用订阅" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1435 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1430 msgid "No subscription node" msgstr "无订阅节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1270 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1265 msgid "No valid share link found." msgstr "找不到有效分享链接。" @@ -1636,7 +1648,7 @@ msgstr "节点" msgid "Node Settings" msgstr "节点设置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1216 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1211 msgid "Nodes" msgstr "节点" @@ -1718,6 +1730,10 @@ msgstr "数据包编码" msgid "Padding scheme" msgstr "填充方案" +#: htdocs/luci-static/resources/view/homeproxy/status.js:141 +msgid "Panic" +msgstr "崩溃" + #: htdocs/luci-static/resources/view/homeproxy/node.js:463 #: htdocs/luci-static/resources/view/homeproxy/server.js:190 msgid "Password" @@ -1930,21 +1946,21 @@ msgstr "RDP" msgid "RDRC timeout" msgstr "RDRC 超时" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1144 -#: htdocs/luci-static/resources/view/homeproxy/server.js:715 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1138 +#: htdocs/luci-static/resources/view/homeproxy/server.js:714 msgid "REALITY" msgstr "REALITY" -#: htdocs/luci-static/resources/view/homeproxy/server.js:720 +#: htdocs/luci-static/resources/view/homeproxy/server.js:719 msgid "REALITY private key" msgstr "REALITY 私钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1143 msgid "REALITY public key" msgstr "REALITY 公钥" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1153 -#: htdocs/luci-static/resources/view/homeproxy/server.js:725 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1148 +#: htdocs/luci-static/resources/view/homeproxy/server.js:724 msgid "REALITY short ID" msgstr "REALITY 标识符" @@ -1977,7 +1993,7 @@ msgstr "Redirect TCP + TProxy UDP" msgid "Redirect TCP + Tun UDP" msgstr "Redirect TCP + Tun UDP" -#: htdocs/luci-static/resources/view/homeproxy/status.js:171 +#: htdocs/luci-static/resources/view/homeproxy/status.js:218 msgid "Refresh every %s seconds." msgstr "每 %s 秒刷新。" @@ -1994,11 +2010,11 @@ msgstr "拒绝" msgid "Remote" msgstr "远程" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1432 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1427 msgid "Remove %s nodes" msgstr "移除 %s 个节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1422 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1417 msgid "Remove all nodes from subscriptions" msgstr "移除所有订阅节点" @@ -2022,15 +2038,15 @@ msgstr "解析" msgid "Resolve strategy" msgstr "解析策略" -#: htdocs/luci-static/resources/view/homeproxy/status.js:194 +#: htdocs/luci-static/resources/view/homeproxy/status.js:240 msgid "Resources management" msgstr "资源管理" -#: htdocs/luci-static/resources/view/homeproxy/server.js:870 +#: htdocs/luci-static/resources/view/homeproxy/server.js:868 msgid "Reuse address" msgstr "复用地址" -#: htdocs/luci-static/resources/view/homeproxy/server.js:871 +#: htdocs/luci-static/resources/view/homeproxy/server.js:869 msgid "Reuse listener address." msgstr "复用监听地址。" @@ -2112,7 +2128,7 @@ msgstr "SSH" msgid "STUN" msgstr "STUN" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1176 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1171 msgid "SUoT version" msgstr "SUoT 版本" @@ -2129,16 +2145,16 @@ msgstr "Salamander" msgid "Same as main node" msgstr "保持与主节点一致" -#: htdocs/luci-static/resources/view/homeproxy/status.js:220 -#: htdocs/luci-static/resources/view/homeproxy/status.js:225 +#: htdocs/luci-static/resources/view/homeproxy/status.js:266 +#: htdocs/luci-static/resources/view/homeproxy/status.js:271 msgid "Save" msgstr "保存" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1396 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1391 msgid "Save current settings" msgstr "保存当前设置" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1393 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1388 msgid "Save subscriptions settings" msgstr "保存订阅设置" @@ -2296,19 +2312,19 @@ msgstr "" msgid "String" msgstr "字符串" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1321 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1316 msgid "Sub (%s)" msgstr "订阅(%s)" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1348 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1343 msgid "Subscription URL-s" msgstr "订阅地址" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1332 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1327 msgid "Subscriptions" msgstr "订阅" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1272 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1267 msgid "Successfully imported %s nodes of total %s." msgstr "成功导入 %s 个节点,共 %s 个。" @@ -2316,8 +2332,8 @@ msgstr "成功导入 %s 个节点,共 %s 个。" msgid "Successfully updated." msgstr "更新成功。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1232 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1349 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1227 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1344 msgid "" "Support Hysteria, Shadowsocks, Trojan, v2rayN (VMess), and XTLS (VLESS) " "online configuration delivery standard." @@ -2346,12 +2362,12 @@ msgstr "系统 DNS" #: htdocs/luci-static/resources/view/homeproxy/client.js:638 #: htdocs/luci-static/resources/view/homeproxy/client.js:949 #: htdocs/luci-static/resources/view/homeproxy/client.js:1098 -#: htdocs/luci-static/resources/view/homeproxy/server.js:857 +#: htdocs/luci-static/resources/view/homeproxy/server.js:855 msgid "TCP" msgstr "TCP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1160 -#: htdocs/luci-static/resources/view/homeproxy/server.js:835 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1155 +#: htdocs/luci-static/resources/view/homeproxy/server.js:833 msgid "TCP fast open" msgstr "TCP 快速打开" @@ -2567,7 +2583,7 @@ msgid "" "allowed to open." msgstr "允许对等点打开的 QUIC 并发双向流的最大数量。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:731 +#: htdocs/luci-static/resources/view/homeproxy/server.js:730 msgid "The maximum time difference between the server and the client." msgstr "服务器和客户端之间的最大时间差。" @@ -2582,7 +2598,7 @@ msgid "The modern ImmortalWrt proxy platform for ARM64/AMD64." msgstr "为 ARM64/AMD64 设计的现代 ImmortalWrt 代理平台。" #: htdocs/luci-static/resources/view/homeproxy/client.js:454 -#: htdocs/luci-static/resources/view/homeproxy/server.js:865 +#: htdocs/luci-static/resources/view/homeproxy/server.js:863 msgid "The network interface to bind to." msgstr "绑定到的网络接口。" @@ -2590,7 +2606,7 @@ msgstr "绑定到的网络接口。" msgid "The path of the DNS server." msgstr "DNS 服务器的路径。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1100 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1095 msgid "" "The path to the ECH config, in PEM format. If empty, load from DNS will be " "attempted." @@ -2612,11 +2628,11 @@ msgstr "DNS 服务器的端口。" msgid "The response code." msgstr "响应代码。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:768 +#: htdocs/luci-static/resources/view/homeproxy/server.js:766 msgid "The server private key, in PEM format." msgstr "服务端私钥,需要 PEM 格式。" -#: htdocs/luci-static/resources/view/homeproxy/server.js:749 +#: htdocs/luci-static/resources/view/homeproxy/server.js:747 msgid "The server public key, in PEM format." msgstr "服务端公钥,需要 PEM 格式。" @@ -2649,7 +2665,7 @@ msgstr "" "检测到任何活动,则会关闭连接。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1039 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1384 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1379 msgid "" "This is DANGEROUS, your traffic is almost like " "PLAIN TEXT! Use at your own risk!" @@ -2697,6 +2713,10 @@ msgid "" msgstr "" "要启用 Tun 支持,您需要安装 ip-fullkmod-tun。" +#: htdocs/luci-static/resources/view/homeproxy/status.js:135 +msgid "Trace" +msgstr "跟踪" + #: htdocs/luci-static/resources/view/homeproxy/node.js:769 #: htdocs/luci-static/resources/view/homeproxy/server.js:409 msgid "Transport" @@ -2726,21 +2746,21 @@ msgstr "类型" #: htdocs/luci-static/resources/view/homeproxy/client.js:639 #: htdocs/luci-static/resources/view/homeproxy/client.js:948 #: htdocs/luci-static/resources/view/homeproxy/client.js:1099 -#: htdocs/luci-static/resources/view/homeproxy/server.js:858 +#: htdocs/luci-static/resources/view/homeproxy/server.js:856 msgid "UDP" msgstr "UDP" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1166 -#: htdocs/luci-static/resources/view/homeproxy/server.js:844 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1161 +#: htdocs/luci-static/resources/view/homeproxy/server.js:842 msgid "UDP Fragment" msgstr "UDP 分片" #: htdocs/luci-static/resources/view/homeproxy/client.js:335 -#: htdocs/luci-static/resources/view/homeproxy/server.js:849 +#: htdocs/luci-static/resources/view/homeproxy/server.js:847 msgid "UDP NAT expiration time" msgstr "UDP NAT 过期时间" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1170 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1165 msgid "UDP over TCP" msgstr "UDP over TCP" @@ -2781,15 +2801,15 @@ msgstr "UUID" msgid "Unknown error." msgstr "未知错误。" -#: htdocs/luci-static/resources/view/homeproxy/status.js:148 +#: htdocs/luci-static/resources/view/homeproxy/status.js:194 msgid "Unknown error: %s" msgstr "未知错误:%s" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1137 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1131 msgid "Unsupported fingerprint!" msgstr "不支持的指纹!" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1407 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1402 msgid "Update %s subscriptions" msgstr "更新 %s 个订阅" @@ -2805,23 +2825,23 @@ msgstr "更新间隔" msgid "Update interval of rule set." msgstr "规则集更新间隔。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1402 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1397 msgid "Update nodes from subscriptions" msgstr "从订阅更新节点" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1345 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1340 msgid "Update subscriptions via proxy." msgstr "使用代理更新订阅。" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1338 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1333 msgid "Update time" msgstr "更新时间" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1344 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1339 msgid "Update via proxy" msgstr "使用代理更新" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1105 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1100 msgid "Upload ECH config" msgstr "上传 ECH 配置" @@ -2836,18 +2856,18 @@ msgid "Upload bandwidth in Mbps." msgstr "上传带宽(单位:Mbps)。" #: htdocs/luci-static/resources/view/homeproxy/node.js:1081 -#: htdocs/luci-static/resources/view/homeproxy/server.js:759 +#: htdocs/luci-static/resources/view/homeproxy/server.js:757 msgid "Upload certificate" msgstr "上传证书" -#: htdocs/luci-static/resources/view/homeproxy/server.js:778 +#: htdocs/luci-static/resources/view/homeproxy/server.js:776 msgid "Upload key" msgstr "上传密钥" #: htdocs/luci-static/resources/view/homeproxy/node.js:1084 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1108 -#: htdocs/luci-static/resources/view/homeproxy/server.js:762 -#: htdocs/luci-static/resources/view/homeproxy/server.js:781 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1103 +#: htdocs/luci-static/resources/view/homeproxy/server.js:760 +#: htdocs/luci-static/resources/view/homeproxy/server.js:779 msgid "Upload..." msgstr "上传..." @@ -2871,7 +2891,7 @@ msgstr "用于验证返回证书上的主机名。" msgid "User" msgstr "用户" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1378 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1373 msgid "User-Agent" msgstr "用户代理" @@ -2899,12 +2919,16 @@ msgstr "WAN DNS(从接口获取)" msgid "WAN IP Policy" msgstr "WAN IP 策略" +#: htdocs/luci-static/resources/view/homeproxy/status.js:138 +msgid "Warn" +msgstr "警告" + #: htdocs/luci-static/resources/view/homeproxy/node.js:776 #: htdocs/luci-static/resources/view/homeproxy/server.js:416 msgid "WebSocket" msgstr "WebSocket" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1369 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1364 msgid "Whitelist mode" msgstr "白名单模式" @@ -2929,7 +2953,7 @@ msgid "Write proxy protocol in the connection header." msgstr "在连接头中写入代理协议。" #: htdocs/luci-static/resources/view/homeproxy/node.js:885 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1391 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1386 msgid "Xudp (Xray-core)" msgstr "Xudp (Xray-core)" @@ -2942,7 +2966,7 @@ msgid "ZeroSSL" msgstr "ZeroSSL" #: htdocs/luci-static/resources/view/homeproxy/node.js:1086 -#: htdocs/luci-static/resources/view/homeproxy/server.js:764 +#: htdocs/luci-static/resources/view/homeproxy/server.js:762 msgid "certificate" msgstr "证书" @@ -2986,19 +3010,19 @@ msgstr "gVisor" #: htdocs/luci-static/resources/view/homeproxy/client.js:504 #: htdocs/luci-static/resources/view/homeproxy/client.js:1355 #: htdocs/luci-static/resources/view/homeproxy/node.js:487 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1133 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1127 #: htdocs/luci-static/resources/view/homeproxy/server.js:226 msgid "non-empty value" msgstr "非空值" #: htdocs/luci-static/resources/view/homeproxy/node.js:628 #: htdocs/luci-static/resources/view/homeproxy/node.js:883 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1389 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1384 msgid "none" msgstr "无" #: htdocs/luci-static/resources/view/homeproxy/node.js:884 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1390 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1385 msgid "packet addr (v2ray-core v5+)" msgstr "packet addr (v2ray-core v5+)" @@ -3006,7 +3030,7 @@ msgstr "packet addr (v2ray-core v5+)" msgid "passed" msgstr "通过" -#: htdocs/luci-static/resources/view/homeproxy/server.js:783 +#: htdocs/luci-static/resources/view/homeproxy/server.js:781 msgid "private key" msgstr "私钥" @@ -3014,19 +3038,19 @@ msgstr "私钥" msgid "quic-go / uquic chrome" msgstr "quic-go / uquic chrome" -#: htdocs/luci-static/resources/view/homeproxy/status.js:237 +#: htdocs/luci-static/resources/view/homeproxy/status.js:283 msgid "sing-box client" msgstr "sing-box 客户端" -#: htdocs/luci-static/resources/view/homeproxy/status.js:240 +#: htdocs/luci-static/resources/view/homeproxy/status.js:286 msgid "sing-box server" msgstr "sing-box 服务端" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1115 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1109 msgid "uTLS fingerprint" msgstr "uTLS 指纹" -#: htdocs/luci-static/resources/view/homeproxy/node.js:1116 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1110 msgid "" "uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting " "resistance." @@ -3038,7 +3062,7 @@ msgid "unchecked" msgstr "未检查" #: htdocs/luci-static/resources/homeproxy.js:237 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1301 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1296 msgid "unique UCI identifier" msgstr "独立 UCI 标识" @@ -3048,13 +3072,13 @@ msgstr "独立值" #: htdocs/luci-static/resources/view/homeproxy/node.js:499 #: htdocs/luci-static/resources/view/homeproxy/node.js:642 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1177 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1172 msgid "v1" msgstr "v1" #: htdocs/luci-static/resources/view/homeproxy/node.js:500 #: htdocs/luci-static/resources/view/homeproxy/node.js:643 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1178 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1173 msgid "v2" msgstr "v2" @@ -3073,8 +3097,8 @@ msgstr "有效 DNS 服务器地址" #: htdocs/luci-static/resources/view/homeproxy/client.js:521 #: htdocs/luci-static/resources/view/homeproxy/client.js:1360 #: htdocs/luci-static/resources/view/homeproxy/client.js:1363 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1355 -#: htdocs/luci-static/resources/view/homeproxy/node.js:1358 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1350 +#: htdocs/luci-static/resources/view/homeproxy/node.js:1353 msgid "valid URL" msgstr "有效网址" diff --git a/small/luci-app-homeproxy/root/etc/config/homeproxy b/small/luci-app-homeproxy/root/etc/config/homeproxy index c3031c9ec2..9067521043 100644 --- a/small/luci-app-homeproxy/root/etc/config/homeproxy +++ b/small/luci-app-homeproxy/root/etc/config/homeproxy @@ -31,6 +31,7 @@ config homeproxy 'config' option proxy_mode 'redirect_tproxy' option ipv6_support '1' option github_token '' + option log_level 'warn' config homeproxy 'control' option lan_proxy_mode 'disabled' @@ -53,6 +54,7 @@ config homeproxy 'control' config homeproxy 'routing' option sniff_override '1' option default_outbound 'direct-out' + option default_outbound_dns 'default-dns' config homeproxy 'dns' option dns_strategy 'prefer_ipv4' @@ -71,11 +73,5 @@ config homeproxy 'subscription' config homeproxy 'server' option enabled '0' - -config dns_rule 'nodes_domain' - option label 'NodesDomain' - option enabled '1' - option mode 'default' - list outbound 'any-out' - option server 'default-dns' + option log_level 'warn' diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt index 2893b14118..d5fe32b17b 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.txt @@ -13,6 +13,7 @@ 1.116.0.0/15 1.118.2.0/24 1.118.32.0/22 +1.118.36.0/24 1.119.0.0/17 1.119.128.0/18 1.119.192.0/20 @@ -126,6 +127,7 @@ 36.255.128.0/22 36.255.164.0/24 36.255.192.0/24 +38.84.220.0/24 38.111.220.0/23 39.64.0.0/11 39.96.0.0/13 @@ -198,7 +200,8 @@ 42.240.8.0/22 42.240.12.0/24 42.240.16.0/24 -42.240.20.0/24 +42.240.20.0/23 +42.240.22.0/24 42.240.128.0/17 42.242.0.0/15 42.244.0.0/14 @@ -209,10 +212,13 @@ 43.102.152.0/22 43.136.0.0/13 43.144.0.0/15 +43.176.0.0/14 +43.180.0.0/16 43.192.0.0/16 43.193.0.0/18 43.193.64.0/24 43.194.0.0/20 +43.194.16.0/24 43.195.0.0/20 43.196.0.0/16 43.224.12.0/22 @@ -404,8 +410,7 @@ 45.116.152.0/22 45.116.208.0/22 45.117.8.0/22 -45.117.68.0/24 -45.117.70.0/23 +45.117.68.0/22 45.119.60.0/22 45.119.68.0/22 45.119.105.0/24 @@ -444,7 +449,7 @@ 45.249.212.0/22 45.250.32.0/21 45.250.40.0/22 -45.250.152.0/24 +45.250.152.0/23 45.250.180.0/23 45.250.184.0/22 45.250.188.0/24 @@ -513,7 +518,6 @@ 49.4.124.0/23 49.4.126.0/24 49.4.128.0/22 -49.5.13.0/24 49.7.0.0/16 49.52.0.0/14 49.64.0.0/11 @@ -557,7 +561,7 @@ 54.222.48.0/21 54.222.57.0/24 54.222.60.0/22 -54.222.64.0/24 +54.222.64.0/23 54.222.70.0/23 54.222.72.0/21 54.222.80.0/21 @@ -842,6 +846,7 @@ 101.132.0.0/15 101.197.0.0/16 101.198.0.0/22 +101.198.4.0/24 101.198.160.0/19 101.198.192.0/19 101.199.48.0/20 @@ -882,6 +887,8 @@ 101.251.0.0/22 101.251.80.0/20 101.251.128.0/19 +101.251.160.0/20 +101.251.176.0/22 101.251.192.0/18 101.254.0.0/20 101.254.32.0/19 @@ -1101,6 +1108,7 @@ 103.73.204.0/22 103.74.24.0/21 103.74.48.0/22 +103.74.80.0/22 103.75.107.0/24 103.75.152.0/22 103.76.60.0/22 @@ -1116,6 +1124,7 @@ 103.79.24.0/22 103.79.120.0/22 103.79.200.0/22 +103.79.228.0/24 103.81.4.0/22 103.81.48.0/22 103.81.72.0/22 @@ -1182,7 +1191,6 @@ 103.102.214.0/24 103.103.12.0/24 103.103.36.0/24 -103.103.200.0/22 103.104.252.0/22 103.105.0.0/22 103.105.12.0/22 @@ -1235,7 +1243,7 @@ 103.123.4.0/23 103.125.236.0/22 103.126.1.0/24 -103.126.18.0/23 +103.126.19.0/24 103.126.101.0/24 103.126.102.0/23 103.126.124.0/22 @@ -1315,7 +1323,6 @@ 103.177.44.0/24 103.179.78.0/23 103.180.108.0/23 -103.181.164.0/23 103.181.234.0/24 103.183.66.0/23 103.183.122.0/23 @@ -1392,6 +1399,7 @@ 103.215.36.0/22 103.215.44.0/24 103.215.140.0/22 +103.216.136.0/22 103.216.152.0/22 103.216.252.0/23 103.217.184.0/21 @@ -1425,6 +1433,7 @@ 103.227.80.0/22 103.227.120.0/22 103.227.136.0/22 +103.227.228.0/22 103.228.12.0/22 103.228.136.0/22 103.228.160.0/22 @@ -1713,7 +1722,6 @@ 110.236.0.0/15 110.240.0.0/12 111.0.0.0/10 -111.67.192.0/20 111.72.0.0/13 111.85.0.0/16 111.112.0.0/14 @@ -1787,11 +1795,7 @@ 113.45.112.0/22 113.45.120.0/22 113.45.128.0/17 -113.46.0.0/17 -113.46.128.0/18 -113.46.192.0/19 -113.46.224.0/20 -113.46.240.0/21 +113.46.0.0/16 113.47.0.0/18 113.47.64.0/19 113.47.96.0/21 @@ -1900,7 +1904,11 @@ 114.112.200.0/21 114.112.208.0/20 114.113.63.0/24 -114.113.64.0/18 +114.113.64.0/20 +114.113.80.0/22 +114.113.84.0/24 +114.113.88.0/21 +114.113.96.0/19 114.113.144.0/20 114.113.196.0/22 114.113.200.0/24 @@ -1961,10 +1969,10 @@ 115.175.224.0/20 115.182.0.0/15 115.190.0.0/17 -115.190.128.0/19 +115.190.128.0/18 +115.190.192.0/20 115.192.0.0/11 115.224.0.0/12 -116.0.81.0/24 116.0.89.0/24 116.1.0.0/16 116.2.0.0/15 @@ -2253,8 +2261,8 @@ 118.194.128.0/21 118.194.240.0/21 118.195.128.0/17 -118.196.0.0/19 -118.196.32.0/20 +118.196.0.0/18 +118.196.64.0/19 118.199.0.0/16 118.202.0.0/15 118.212.0.0/15 @@ -2704,7 +2712,6 @@ 124.64.0.0/15 124.66.0.0/17 124.67.0.0/16 -124.68.252.0/23 124.70.0.0/16 124.71.0.0/17 124.71.128.0/18 @@ -2773,7 +2780,10 @@ 125.112.0.0/12 125.171.0.0/16 125.208.0.0/19 -125.208.32.0/20 +125.208.32.0/21 +125.208.40.0/22 +125.208.44.0/23 +125.208.46.0/24 125.208.49.0/24 125.210.0.0/15 125.213.32.0/20 @@ -2953,6 +2963,10 @@ 154.72.44.0/24 154.72.47.0/24 154.89.32.0/20 +154.89.49.0/24 +154.89.50.0/23 +154.89.52.0/22 +154.89.56.0/21 154.91.158.0/23 154.208.140.0/22 154.208.144.0/20 @@ -2972,7 +2986,9 @@ 155.102.26.0/23 155.102.28.0/22 155.102.32.0/19 +155.102.64.0/23 155.102.72.0/24 +155.102.98.0/23 155.102.111.0/24 155.102.112.0/21 155.102.120.0/23 @@ -2986,8 +3002,12 @@ 155.102.164.0/23 155.102.166.0/24 155.102.168.0/23 +155.102.171.0/24 +155.102.174.0/23 155.102.176.0/23 +155.102.178.0/24 155.102.180.0/22 +155.102.184.0/21 155.102.193.0/24 155.102.194.0/23 155.102.196.0/23 @@ -2995,16 +3015,12 @@ 155.102.200.0/23 155.102.202.0/24 155.102.204.0/23 +155.102.207.0/24 155.102.208.0/23 155.102.211.0/24 155.102.216.0/22 155.102.220.0/23 -155.102.224.0/20 -155.102.240.0/23 -155.102.242.0/24 -155.102.247.0/24 -155.102.248.0/23 -155.102.253.0/24 +155.102.224.0/19 155.126.176.0/23 156.59.108.0/24 156.59.202.0/23 @@ -3023,7 +3039,6 @@ 157.0.0.0/16 157.10.34.0/24 157.10.105.0/24 -157.15.74.0/23 157.15.94.0/23 157.15.104.0/23 157.18.0.0/16 @@ -3088,10 +3103,10 @@ 163.181.40.0/24 163.181.42.0/23 163.181.44.0/22 -163.181.48.0/23 -163.181.50.0/24 +163.181.48.0/22 163.181.52.0/24 -163.181.56.0/22 +163.181.56.0/23 +163.181.58.0/24 163.181.60.0/23 163.181.66.0/23 163.181.69.0/24 @@ -3137,9 +3152,9 @@ 163.181.192.0/23 163.181.196.0/22 163.181.200.0/21 -163.181.209.0/24 163.181.210.0/23 -163.181.212.0/22 +163.181.213.0/24 +163.181.214.0/23 163.181.216.0/21 163.181.224.0/23 163.181.228.0/22 @@ -3157,10 +3172,6 @@ 166.111.0.0/16 167.139.0.0/16 167.220.244.0/22 -168.159.144.0/21 -168.159.152.0/22 -168.159.156.0/23 -168.159.158.0/24 168.160.0.0/17 168.160.152.0/24 168.160.158.0/23 @@ -3183,6 +3194,8 @@ 175.16.0.0/13 175.24.0.0/15 175.27.0.0/16 +175.29.107.0/24 +175.29.108.0/22 175.30.0.0/15 175.42.0.0/15 175.44.0.0/16 @@ -3263,6 +3276,7 @@ 180.233.0.0/18 180.235.64.0/21 180.235.72.0/23 +181.233.128.0/22 182.18.5.0/24 182.18.32.0/19 182.18.72.0/21 @@ -3282,7 +3296,7 @@ 182.61.128.0/19 182.61.192.0/22 182.61.200.0/21 -182.61.216.0/21 +182.61.208.0/20 182.61.224.0/19 182.80.0.0/13 182.88.0.0/14 @@ -3321,8 +3335,6 @@ 185.234.212.0/24 188.131.128.0/17 192.55.46.0/24 -192.55.68.0/22 -192.102.204.0/23 192.140.160.0/19 192.140.208.0/21 192.144.128.0/17 @@ -3335,8 +3347,10 @@ 193.119.10.0/23 193.119.12.0/23 193.119.15.0/24 +193.119.17.0/24 193.119.19.0/24 193.119.20.0/23 +193.119.22.0/24 193.119.25.0/24 193.119.28.0/24 193.119.30.0/24 @@ -3347,7 +3361,6 @@ 194.138.202.0/23 194.138.245.0/24 195.114.203.0/24 -198.175.100.0/22 198.208.17.0/24 198.208.19.0/24 198.208.30.0/24 @@ -3658,6 +3671,7 @@ 203.86.60.0/23 203.86.62.0/24 203.86.64.0/19 +203.86.112.0/24 203.86.116.0/24 203.86.254.0/23 203.88.32.0/19 @@ -4088,6 +4102,7 @@ 211.167.176.0/20 211.167.224.0/19 212.64.0.0/17 +212.100.186.0/24 212.129.128.0/17 218.0.0.0/11 218.56.0.0/13 @@ -4342,7 +4357,10 @@ 222.126.128.0/22 222.126.132.0/23 222.126.140.0/22 -222.126.144.0/20 +222.126.144.0/24 +222.126.146.0/23 +222.126.148.0/22 +222.126.152.0/21 222.126.160.0/20 222.126.176.0/21 222.126.184.0/22 diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver index f40434fe83..fa96af1f8e 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver @@ -1 +1 @@ -20250822033443 +20250912032015 diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt index e55c21c320..3bc9ba7fa4 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.txt @@ -40,6 +40,7 @@ 2400:7fc0:2a0::/44 2400:7fc0:2c0::/44 2400:7fc0:4000::/40 +2400:7fc0:4100::/48 2400:7fc0:6000::/40 2400:7fc0:8000::/36 2400:7fc0:a000::/36 @@ -131,6 +132,7 @@ 2401:3480:3000::/36 2401:34a0::/31 2401:3800::/32 +2401:5560:1000::/48 2401:5c20:10::/48 2401:70e0::/32 2401:71c0::/48 @@ -171,9 +173,8 @@ 2401:f860:86::/47 2401:f860:88::/47 2401:f860:90::/46 -2401:f860:94::/48 +2401:f860:94::/47 2401:f860:100::/40 -2401:f860:f100::/40 2401:fa00:40::/43 2402:840:d000::/46 2402:840:e000::/46 @@ -194,9 +195,7 @@ 2402:6f40:2::/48 2402:7d80::/48 2402:7d80:240::/47 -2402:7d80:6666::/48 2402:7d80:8888::/48 -2402:7d80:9999::/48 2402:8bc0::/32 2402:8cc0::/40 2402:8cc0:200::/40 @@ -341,6 +340,8 @@ 2404:2280:1f0::/45 2404:2280:1f8::/46 2404:2280:1fd::/48 +2404:2280:1fe::/48 +2404:2280:201::/48 2404:2280:202::/47 2404:2280:204::/46 2404:2280:208::/46 @@ -349,18 +350,22 @@ 2404:2280:210::/46 2404:2280:214::/48 2404:2280:216::/47 -2404:2280:218::/48 -2404:2280:21a::/48 +2404:2280:218::/46 2404:2280:21d::/48 2404:2280:221::/48 +2404:2280:259::/48 +2404:2280:25a::/47 +2404:2280:25c::/48 2404:2280:265::/48 2404:2280:266::/47 -2404:2280:268::/46 -2404:2280:26c::/48 -2404:2280:271::/48 +2404:2280:268::/45 +2404:2280:270::/47 2404:2280:272::/48 +2404:2280:274::/48 2404:2280:27a::/48 2404:2280:27c::/47 +2404:2280:27f::/48 +2404:2280:282::/48 2404:3700::/48 2404:4dc0::/32 2404:6380::/48 @@ -391,6 +396,7 @@ 2404:c2c0:2c0::/44 2404:c2c0:501::/48 2404:c2c0:4000::/40 +2404:c2c0:4100::/48 2404:c2c0:6000::/40 2404:c2c0:8000::/36 2404:c2c0:bb00::/40 @@ -447,9 +453,9 @@ 2406:840:e230::/44 2406:840:e260::/48 2406:840:e2cf::/48 -2406:840:e500::/47 2406:840:e621::/48 2406:840:e666::/47 +2406:840:e720::/44 2406:840:e80f::/48 2406:840:eb00::/46 2406:840:eb04::/47 @@ -595,6 +601,7 @@ 2408:8181:a000::/40 2408:8181:a220::/44 2408:8181:e000::/40 +2408:8182:6000::/40 2408:8182:c000::/40 2408:8183:4000::/40 2408:8183:8000::/40 @@ -737,7 +744,6 @@ 2408:8406:b4c0::/42 2408:8406:b500::/41 2408:8406:b580::/42 -2408:8407:500::/43 2408:8409::/40 2408:8409:100::/41 2408:8409:180::/42 @@ -1187,6 +1193,8 @@ 240e::/20 2602:2e0:ff::/48 2602:f7ee:ee::/48 +2602:f92a:a478::/48 +2602:f92a:dead::/48 2602:f92a:e100::/44 2602:f93b:400::/38 2602:f9ba:a8::/48 @@ -1242,28 +1250,25 @@ 2a06:3603::/32 2a06:3604::/30 2a06:9f81:4600::/43 -2a06:9f81:4640::/44 2a06:a005:260::/43 2a06:a005:280::/43 2a06:a005:2a0::/44 2a06:a005:8d0::/44 -2a06:a005:9c0::/48 -2a06:a005:9e0::/44 2a06:a005:a13::/48 -2a06:a005:e9a::/48 2a06:a005:1c40::/44 2a09:b280:ff81::/48 2a09:b280:ff83::/48 2a09:b280:ff84::/47 -2a0a:2840::/30 +2a0a:2840:20::/43 +2a0a:2840:2000::/47 +2a0a:2842::/32 2a0a:2845:aab8::/46 -2a0a:2845:d647::/48 2a0a:2846::/48 2a0a:6040:ec00::/40 2a0a:6044:6600::/40 -2a0b:b87:ffb5::/48 2a0b:2542::/48 2a0b:4340:a6::/48 +2a0b:4b81:1001::/48 2a0b:4e07:b8::/47 2a0c:9a40:84e0::/48 2a0c:9a40:9e00::/43 @@ -1285,10 +1290,9 @@ 2a0e:aa07:e044::/48 2a0e:aa07:e151::/48 2a0e:aa07:e155::/48 -2a0e:aa07:e160::/47 -2a0e:aa07:e162::/48 2a0e:aa07:e16a::/48 2a0e:aa07:e1a0::/44 +2a0e:aa07:e1e1::/48 2a0e:aa07:e1e2::/47 2a0e:aa07:e1e4::/47 2a0e:aa07:e1e6::/48 @@ -1324,19 +1328,17 @@ 2a0f:7d07::/32 2a0f:85c1:ba5::/48 2a0f:85c1:ca0::/44 +2a0f:85c1:cf1::/48 2a0f:9400:6110::/48 2a0f:9400:7700::/48 2a0f:ac00::/29 2a10:2f00:15a::/48 -2a10:cc40:190::/48 2a10:ccc0:d00::/46 2a10:ccc0:d0a::/47 2a10:ccc0:d0c::/47 -2a10:ccc6:66c4::/48 2a10:ccc6:66c6::/48 -2a10:ccc6:66c9::/48 +2a10:ccc6:66c8::/47 2a10:ccc6:66ca::/48 -2a10:ccc6:66cc::/47 2a12:f8c3::/36 2a13:1800::/48 2a13:1800:10::/48 @@ -1351,7 +1353,6 @@ 2a13:a5c7:2102::/48 2a13:a5c7:2121::/48 2a13:a5c7:2801::/48 -2a13:a5c7:2803::/48 2a13:a5c7:3108::/48 2a13:a5c7:31a0::/43 2a13:aac4:f000::/44 @@ -1372,9 +1373,7 @@ 2a14:67c1:a040::/47 2a14:67c1:a061::/48 2a14:67c1:a064::/48 -2a14:67c1:a090::/46 -2a14:67c1:a095::/48 -2a14:67c1:a096::/48 +2a14:67c1:a090::/45 2a14:67c1:a099::/48 2a14:67c1:a100::/43 2a14:67c1:b000::/48 @@ -1384,15 +1383,15 @@ 2a14:67c1:b100::/46 2a14:67c1:b105::/48 2a14:67c1:b107::/48 -2a14:67c1:b130::/48 -2a14:67c1:b132::/47 +2a14:67c1:b130::/46 2a14:67c1:b134::/47 +2a14:67c1:b140::/48 2a14:67c1:b4a1::/48 2a14:67c1:b4a2::/48 2a14:67c1:b4c0::/45 -2a14:67c1:b4d0::/44 +2a14:67c1:b4d0::/45 2a14:67c1:b4e0::/43 -2a14:67c1:b500::/48 +2a14:67c1:b500::/47 2a14:67c1:b549::/48 2a14:67c1:b561::/48 2a14:67c1:b563::/48 @@ -1401,16 +1400,17 @@ 2a14:67c1:b582::/48 2a14:67c1:b588::/47 2a14:67c1:b590::/48 -2a14:67c1:b599::/48 2a14:67c5:1900::/40 2a14:7580:9200::/40 2a14:7580:9400::/39 2a14:7580:d000::/37 2a14:7580:d800::/39 +2a14:7580:da00::/40 2a14:7580:e200::/40 2a14:7580:fe00::/40 2a14:7581:3100::/40 -2a14:7581:9010::/44 +2a14:7583:f4fe::/48 +2a14:7583:f500::/48 2c0f:f7a8:8011::/48 2c0f:f7a8:8050::/48 2c0f:f7a8:805f::/48 diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver index f40434fe83..fa96af1f8e 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver @@ -1 +1 @@ -20250822033443 +20250912032015 diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt index 12cc633746..a388fc6a4e 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.txt @@ -14,6 +14,7 @@ 000e.com 000pc.net 001.com +001060.com 00117163.xyz 001daima.com 001fzc.com @@ -26,7 +27,6 @@ 001pt.com 001sj.net 001tech.com -001town.com 001tudou.com 001u.com 001wifi.com @@ -59,6 +59,8 @@ 007swz.com 007szx.com 007yx.com +008.bet +008.com 00817.com 0086l.com 0086org.com @@ -124,6 +126,7 @@ 014.cc 01401.com 01415.net +014929.com 016sf.com 018520.com 019103.com @@ -193,7 +196,6 @@ 021ja.com 021jgyy.com 021jingwei.com -021jingwu.com 021kd.com 021lawfirm.com 021phone.com @@ -239,7 +241,6 @@ 024fuchan.com 024fuwu.com 024fzy.com -024hainan.com 024heyi.com 024hh.com 024huada.com @@ -301,7 +302,6 @@ 028desite.com 028f.com 028hema.com -028ip.com 028kuaidai.com 028ltzx.com 028office.com @@ -349,6 +349,7 @@ 0316366.com 03167.com 0316yun.com +03241119.xyz 0328.com 033.com 033033.com @@ -369,7 +370,6 @@ 0371lianghao.com 0371sou.com 0371wang.com -037201.com 037398.com 0377auto.com 0378zz.com @@ -414,11 +414,9 @@ 0455zd.com 0456yun.com 0460.com -0464.cm 0470a.com 0472.com 0476vip.com -0479xx.com 049.com 04ip.com 05.gd @@ -571,7 +569,6 @@ 0597ok.com 0597seo.com 0598777.com -0598job.com 0598rc.com 0598yu.com 0599yx.com @@ -644,12 +641,10 @@ 0731hds.com 0731i.com 0731job.com -0731letv.com 0731mcw.com 0731pgy.com 0731tg.com 0731wan.com -0731wx.com 0731zsw.com 0733news.com 0734zpw.com @@ -739,7 +734,6 @@ 0771cts.com 0771cyts.com 0771fukang.com -0771hp.com 0771mr.com 0771rc.com 0772fang.com @@ -836,7 +830,6 @@ 0898hq.com 0898mmf.com 0898uf.com -0898xbfc.com 089u.com 08an.com 08ar.com @@ -854,10 +847,8 @@ 0912fdj.com 0912job.com 0913ss.com -0914cn.com 0915home.com 0916001.com -091601.com 0917.com 0917888.com 0917e.com @@ -884,9 +875,9 @@ 0991dj.com 0991net.com 0992.cc +099913.com 09game.com 09ge.com -09k.net 09shijue.com 0a2d.com 0baiwen.com @@ -911,13 +902,11 @@ 0he0.com 0hgame.com 0i-i0.com -0jpf7u.com 0ka.com 0kee.com 0kkkkkt.com 0ms.one 0nu2yo.com -0pdsa.icu 0r17374.com 0rl.cc 0rz.ltd @@ -1044,7 +1033,6 @@ 100mian.com 100mmedia.net 100nets.com -100niangudu.com 100njz.com 100nong.com 100offer.com @@ -1111,7 +1099,6 @@ 101hair.com 101hr.com 101jiajiao.com -101nr.com 101weiqi.com 1024.ink 1024fuli.com @@ -1157,7 +1144,6 @@ 10idc.com 10isp.com 10juhua.com -10min.club 10moons.com 10p07v10o5.com 10pkpk.com @@ -1262,6 +1248,7 @@ 1156dns.com 115800.com 115cdn.com +115cdn.de 115cdn.net 115cloud.com 115cloud.net @@ -1301,6 +1288,7 @@ 119120.org 119474.xyz 11951.com +11992169.xyz 119958.com 119bid.com 119lora.com @@ -1448,7 +1436,6 @@ 123baofeng.com 123bo.com 123boligang.com -123ds.org 123du.cc 123ems.com 123fc.com @@ -1669,9 +1656,7 @@ 14498.com 1451cn.com 146368.com -14672.cc 147seo.com -147xs.com 147xz.com 148-law.com 1488.com @@ -1679,7 +1664,6 @@ 148com.com 148la.com 14944.net -1495039.com 1495c8.com 14hj.com 14kjin.com @@ -1709,7 +1693,6 @@ 1527ego.com 15311223344.com 153g.net -154.com 1545ts.com 155.com 155155155.xyz @@ -1780,7 +1763,6 @@ 163663.com 1637.com 163888.net -163987.com 163adl.com 163cdn.com 163cms.com @@ -1845,7 +1827,6 @@ 168338.com 16835.com 16838.com -168510.com 1686888.com 1688.com 16885.com @@ -1866,6 +1847,7 @@ 1688zhuce.com 16899168.com 168ad.cc +168auto.com 168chaogu.com 168dc.com 168dmj.com @@ -2062,6 +2044,7 @@ 17cdn.com 17ce.com 17chacha.com +17chdd.com 17cma.com 17coding.info 17d.co @@ -2124,7 +2107,6 @@ 17kss.com 17kuxun.com 17kxgame.com -17kzj.com 17kzy.com 17lai.org 17lai.site @@ -2224,7 +2206,6 @@ 17ya.com 17yaoqu.com 17ym.org -17yoga.vip 17you.com 17yucai.com 17yund.com @@ -2279,7 +2260,6 @@ 1866.tv 18665348887.com 186688.com -18680.net 1872001.com 1873game.com 1874.cool @@ -2365,7 +2345,6 @@ 1905.com 190757.com 190cai.com -1919.com 19196.com 1919game.net 191game.com @@ -2474,8 +2453,6 @@ 1dki0.icu 1domedia.com 1drv.ws -1dufish.com -1dutm.com 1f11.com 1fangchan.com 1fatong.com @@ -2484,7 +2461,6 @@ 1flash.net 1foo.com 1fooai.com -1fqw.com 1g31.com 1gaifang.com 1gbru.com @@ -2572,7 +2548,6 @@ 1nyz.com 1o1o.xyz 1o26.com -1p3yg.icu 1paibao.net 1plas.com 1pm2.com @@ -2624,7 +2599,6 @@ 1wang.com 1x3x.com 1xbet88.com -1xin1li.com 1xinzulin.com 1xlala.cc 1xmb.com @@ -2708,7 +2682,6 @@ 2022cdnpl.com 2023.com 2023game.com -2024789.com 2024qq.com 2025.net 202m.com @@ -2716,6 +2689,7 @@ 203328.com 2048sj.com 2049baby.com +204cloud.com 2050life.com 206zz.com 207xz.com @@ -2725,6 +2699,7 @@ 20fl.com 20g0.com 20images10.com +20images21.com 20images7.com 20ju.com 20kf.com @@ -2756,7 +2731,6 @@ 212313.com 2125.com 21263.net -212ehae.fun 2133.com 2133bbs.com 21373.com @@ -2783,7 +2757,6 @@ 21cctm.com 21ccvn.com 21cd.com -21ce.cc 21cloudbox.com 21cn.com 21cn.net @@ -2816,7 +2789,6 @@ 21good.com 21hifi.com 21hospital.com -21hulian.com 21hyzs.com 21ic.com 21icsearch.com @@ -2956,7 +2928,6 @@ 2323u.com 2323wan.com 232485.com -2325fdrf.fun 2329.com 233.com 2330.com @@ -3003,7 +2974,6 @@ 238000.net 238090.com 239300.net -23946.net 23bei.com 23book.com 23class.com @@ -3070,7 +3040,6 @@ 250340.com 251400.com 2523.com -252300.net 25285577.com 2529.com 253.com @@ -3081,7 +3050,6 @@ 2541.com 254254.com 254game.com -255400.com 255616.com 255star.com 25662zubo23739.com @@ -3191,7 +3159,6 @@ 27tj.com 27ws.com 27xuexiao.com -27ying.com 28.com 281010.com 28123.com @@ -3209,7 +3176,6 @@ 2850.com 2858999.com 285u.com -286sy.com 28715.vip 288idc.com 289.com @@ -3246,6 +3212,7 @@ 29wjns.com 29wt.com 29xf.com +2agi.net 2ai2.com 2ai2.net 2amok.com @@ -3292,7 +3259,6 @@ 2gei.com 2girls1finger.org 2google.com -2h1jeo.com 2haha.com 2haitao.com 2handsmt.com @@ -3315,6 +3281,7 @@ 2ktq.com 2kxs.info 2kxs.org +2kxy.com 2lian.com 2liang.net 2ll.co @@ -3345,7 +3312,6 @@ 2sonar.com 2sx.net 2t58.com -2taobao2jd.com 2te.com 2tianxin.com 2tt.net @@ -3432,7 +3398,6 @@ 31260939.com 312green.com 313033.com -3131yx.com 313515.com 3145.com 314pay.com @@ -3482,7 +3447,6 @@ 31gamestudio.com 31huiyi.com 31idc.com -31jc.com 31jf.com 31jgj.com 31knit.com @@ -3538,7 +3502,6 @@ 3280.com 32800.com 3286.cc -32861.pics 328f.com 328vip.com 3290.com @@ -3572,7 +3535,6 @@ 332831.com 333-555.com 333.com -333056.com 33315.com 333232.xyz 333333.com @@ -3722,7 +3684,6 @@ 355xx.com 356123.com 35617.vip -35666c.com 35667.com 3566t.com 357.com @@ -3785,7 +3746,6 @@ 360bzl.com 360caifu.com 360cdn.com -360cdnjiasu.com 360changshi.com 360che.com 360chezhan.com @@ -3849,7 +3809,6 @@ 360lnk.com 360longyan.com 360loushi.com -360mb.net 360midi.com 360mkt.com 360os.com @@ -3898,7 +3857,6 @@ 360vcloud.com 360vrzy.com 360webcache.com -360weizhan.com 360wenmi.com 360worldcare.com 360wscdn.com @@ -3914,11 +3872,9 @@ 360xlab.com 360xlab.net 360xlab.org -360xs.com 360xyws.com 360yao.com 360ybj.com -360yfw.com 360yijia.com 360youtu.com 360yuanshuo.com @@ -4029,7 +3985,6 @@ 365pp.com 365pr.net 365pub.com -365qilu.com 365qipai365.com 365rili.com 365sec.com @@ -4053,7 +4008,6 @@ 365zhaopin.com 365zhuanrang.com 365zmw.com -365zn.com 365zsw.net 365zzx.com 36612345.com @@ -4091,7 +4045,6 @@ 36dianping.com 36dj.com 36dong.com -36gv.com 36hjob.com 36jr.com 36kr.com @@ -4252,7 +4205,6 @@ 39shuwu.com 39sk.com 39txt.com -39ws.com 39yst.com 3a2studio.com 3a3b3c.com @@ -4364,7 +4316,6 @@ 3gsdxu.com 3gsou.com 3gu.com -3gus.com 3gwoool.com 3h.com 3h1i.com @@ -4615,7 +4566,6 @@ 41188.com 411au.com 41324.com -4135.com 413xkyd.com 414500.net 415677.com @@ -4695,7 +4645,6 @@ 43yl.com 43zhubao.com 4417.com -442.com 4444.cc 4444448.com 44460.com @@ -4752,7 +4701,6 @@ 46mlsv.com 46ps.com 46xs.com -47291.com 47295.com 4735.com 47365.com @@ -4766,7 +4714,6 @@ 47daili.com 47gs.com 47rq.com -47test.com 47zu.com 48.com 4805555.com @@ -4844,9 +4791,7 @@ 4hmodel.com 4hou.com 4hpy.com -4humanknowledge.com 4inlook.com -4ir17.icu 4jplus.com 4juo2.com 4k123.com @@ -4859,7 +4804,6 @@ 4l.hk 4lzr.com 4ndwc.com -4oz4n.icu 4paradigm.com 4pf6hb.com 4pis.com @@ -4869,7 +4813,6 @@ 4px.com 4pyun.com 4q5q.com -4q87v.icu 4qx.net 4sai.com 4sender.com @@ -4883,7 +4826,6 @@ 4to66.com 4u4v.net 4w8.net -4wad.com 4xiaoshuo.info 4xseo.com 4xx.me @@ -4943,7 +4885,6 @@ 50vm.com 50xiao.com 50yc.com -50yin.com 50yu.com 50zera.com 50zi.com @@ -5190,7 +5131,6 @@ 51dpub.com 51drv.com 51dszn.com -51dtv.com 51dugou.com 51dz.com 51dzrc.com @@ -5375,7 +5315,6 @@ 51lepai.com 51lesheng.com 51lg.com -51lianying.com 51lingji.com 51link.com 51liucheng.com @@ -5464,7 +5403,6 @@ 51quzhe.com 51race.com 51rc.com -51rcsl.com 51read.site 51recovery.com 51relaw.com @@ -5722,7 +5660,6 @@ 520link.com 520love520.com 520lpy.com -520meiwen.com 520mingmei.com 520mojing.com 520ok.net @@ -5746,7 +5683,6 @@ 52177.com 521dayu.com 521g.com -521hq.com 521led.com 521logo.com 521qw.com @@ -5755,7 +5691,6 @@ 521up.com 521watch.com 521xunlei.com -5221xsc.com 52237377.com 522de.com 522gg.com @@ -5810,7 +5745,6 @@ 52article.com 52asus.com 52audio.com -52ayw.com 52bar.com 52bishe.com 52bjd.com @@ -5848,7 +5782,6 @@ 52doc.com 52dsy.com 52dtv.com -52dus.cc 52dus.com 52duzhe.com 52dy.tv @@ -5903,7 +5836,6 @@ 52jrjy.com 52js8.com 52jscn.com -52jt.net 52jubensha.com 52juqingba.com 52jxrc.com @@ -5919,7 +5851,6 @@ 52life.cc 52linglong.com 52lion.com -52lsj.com 52luohu.com 52lvgucci.com 52lvyou.com @@ -5937,6 +5868,7 @@ 52ml.net 52mqbiao.com 52mtc.com +52muban.com 52muyou.com 52myqq.com 52nail.com @@ -5991,7 +5923,6 @@ 52svn.com 52swine.com 52t1.com -52tat.org 52tc.co 52tc.info 52tesla.com @@ -6055,7 +5986,6 @@ 52zx.net 52zxw.com 52zy.com -5300tv.com 5306.com 5308999.com 531314.com @@ -6147,7 +6077,7 @@ 54op.com 54pictu.com 54qj.com -54seaman.com +54read.com 54traveler.com 54tup.com 54watch.com @@ -6387,7 +6317,6 @@ 5884.com 588589.com 5888.tv -588988.net 588991.com 588art.com 588ku.com @@ -6415,7 +6344,6 @@ 58display.com 58dns.me 58dns.org -58duihuan.com 58eventer.com 58fkb.com 58food.com @@ -6471,7 +6399,6 @@ 58youxi.com 58yuesao.com 58z.net -58zhuiju.com 59.com 5909.net 590m.com @@ -6497,7 +6424,6 @@ 591yhw.com 592163.com 5923d.com -592xyx.com 592zn.com 59370.com 5945i.com @@ -6520,7 +6446,6 @@ 599.com 5999.tv 5999218ccc.com -599x.com 59b2b.com 59baike.com 59dun.com @@ -6557,7 +6482,6 @@ 5bite.com 5biying.com 5bjm.com -5brxi.icu 5c84i.net 5ccic.com 5cda.com @@ -6615,7 +6539,6 @@ 5iag.com 5iag.net 5iape.com -5ibc.net 5ibear.com 5ibug.net 5icbs.com @@ -6658,7 +6581,6 @@ 5ip9.com 5ipatent.com 5ipkwan.com -5ips.net 5isanguo.com 5isohu.com 5iucn.com @@ -6694,13 +6616,14 @@ 5lux.com 5m5m5m.com 5mapk.com -5mltq.icu 5mouse.com 5mu.com 5nd.com 5nexus.com 5nnj.com 5ooq.com +5opzl.com +5opzl.net 5p8p3p.com 5pao.com 5pb.net @@ -6708,7 +6631,6 @@ 5plus1.net 5pub.com 5q.com -5qm5s.net 5qwan.com 5qzone.net 5r1.net @@ -6729,7 +6651,6 @@ 5shubook.com 5snow.com 5sw.com -5tails.com 5tangs.com 5teacher.com 5th.zone @@ -6760,13 +6681,11 @@ 5web.site 5wx.org 5wxw.com -5x2a.com 5x54.com 5xcg.com 5xiaobo.com 5xini.com 5xmjm.com -5xw.net 5xyouse.com 5y6s.com 5yang.cc @@ -6831,7 +6750,6 @@ 608.vip 6080d.com 6090400.com -609623.com 60986.com 609999.xyz 60dj.com @@ -6897,6 +6815,7 @@ 61mami.com 61mc.com 61n1le.com +61ok.com 61psy.com 61sheji.com 61sou.com @@ -6920,7 +6839,6 @@ 62l.net 62ma.com 62wy.com -62zd0.icu 6300.net 630book.cc 630book.co @@ -6944,7 +6862,6 @@ 63860.vip 639311.com 63cj.com -63diy.com 63fl.com 63jh.com 63pe.com @@ -6986,7 +6903,6 @@ 65650000.com 65656564.com 656gate.com -657192.com 658.com 65875.com 659595.com @@ -7051,7 +6967,6 @@ 666wx.cc 666xinxin.com 66701288.com -667340.com 667744.com 667777.cc 6677cq.com @@ -7082,7 +6997,6 @@ 66f.com 66good.com 66han.com -66health.net 66huigo.com 66in.net 66jiedai.com @@ -7175,13 +7089,11 @@ 6868yx.com 68716871.com 68792999.com -6884981.com 6888.tv 688dns.com 688mob.com 688wz.net 68955.com -6895588.com 68978.net 6899wan.com 68apk.com @@ -7214,7 +7126,6 @@ 693836.com 693975.com 69478.com -6949.com 695157.com 695175.com 69525.com @@ -7270,6 +7181,7 @@ 6eat.com 6edigital.com 6efgcdcjr000.fun +6fast.com 6fcsj.com 6ft8a.icu 6g5fd1a.com @@ -7351,7 +7263,6 @@ 6yoo.com 6young.site 6yso.com -6yuexi.com 6yxk.com 6yxs.com 6yyy7.com @@ -7366,6 +7277,7 @@ 7-vk.com 7-wx.com 7.biz +70.cc 700618.com 70098.com 700kan.cc @@ -7379,6 +7291,7 @@ 70392.com 70524.com 706net.com +707598.xyz 7080edu.com 70822.com 7089899.com @@ -7439,7 +7352,6 @@ 71k.com 71lady.com 71p.net -71study.com 71tao.com 71tech.com 71txt.com @@ -7450,7 +7362,6 @@ 72.com 72017.net 720582.com -720ku.net 720pmovie.com 720static.com 720think.com @@ -7494,7 +7405,6 @@ 72swk.com 72wenhua.com 72whys.com -72wx.com 72xit.com 72xuan.com 72y.co @@ -7562,6 +7472,7 @@ 7618.com 761a.com 7631.com +7633sqw.com 7651.com 766.com 7663.com @@ -7662,7 +7573,6 @@ 77itv.com 77l.com 77lux.com -77mh.app 77music.com 77nt.com 77nt.info @@ -7711,7 +7621,6 @@ 78tp.com 78v.com 78yx.net -78zw.com 79-79.com 79.com 793360.com @@ -7725,7 +7634,6 @@ 798ydh.com 798zb.tv 799.net -79932.co 7999.com 7999.tv 79999.net @@ -7733,7 +7641,6 @@ 79abc.com 79jr.com 79tao.com -79u.com 79yougame.com 79yx.com 7a.cm @@ -7760,13 +7667,11 @@ 7down.com 7down.net 7dsw.com -7dtest.com 7e.hk 7east.com 7ed.net 7edown.com 7ee.com -7eka.com 7f7rt.icu 7fei.com 7fgame.com @@ -7794,7 +7699,6 @@ 7jiaqi.com 7jjjj.com 7jk.com -7jsqnh.com 7juju.com 7k35.com 7k7k.com @@ -7814,13 +7718,13 @@ 7mo.cc 7moor-fs1.com 7moor-fs2.com +7moor-zx.com 7moor.com 7msj.com 7mx.com 7mz3a.com 7nepal.com 7net.cc -7o2o.com 7oh.net 7pa.com 7paiqun.com @@ -7901,7 +7805,6 @@ 80-go.com 80.hk 80000.cc -800086.com 800423.com 800535.com 8006506.com @@ -7923,14 +7826,12 @@ 800buy.com 800cdn.com 800du.com -800fa.com 800hr.com 800jcw.com 800li.net 800lie.com 800lj.com 800mei.net -800pai.com 800pharm.com 800pifa.com 800tu.com @@ -7946,7 +7847,6 @@ 802203.com 80351.com 805481.com -80579.com 80585.com 805m.com 807.com @@ -7986,17 +7886,14 @@ 80sjy.net 80srz.com 80test.com -80tian.com 80txt.cc 80txt.com 80txt.la 80vps.com 80wifi.cc 80x.co -80xb.com 80xg.com 80xs.la -80ym.com 80zw.info 810840.com 811sisp.com @@ -8140,7 +8037,6 @@ 8521.org 85229666.com 85253000.com -853.com 85384.com 853lab.com 854255.com @@ -8172,17 +8068,14 @@ 861817.com 86215.com 86262.com -8633.com 863535.com 863my.com 863soft.com 864956.com -864973.com 86516edu.com 865211.com 86586222.com 86590.com -86696.cc 866ds.com 8671099.com 8673h.com @@ -8191,7 +8084,6 @@ 8684.com 8686c.com 8688g.com -86909.com 86933.com 869d.com 869v.com @@ -8240,7 +8132,6 @@ 86y.org 86yqy.com 870.com -87050.com 870818.com 870q.com 87111111.com @@ -8251,6 +8142,7 @@ 872.cc 872872.com 87573.org +87654321.xyz 8767.com 876920.com 876web.com @@ -8286,7 +8178,6 @@ 8811777.com 8821.com 8825.com -8828dl.com 88303887.com 8831.app 8831398.com @@ -8295,7 +8186,6 @@ 88362zubo95838.com 8838sl.com 883dai.com -8842777.com 884358.com 8844.com 88453392.com @@ -8314,6 +8204,7 @@ 8868.com 886882.app 8868a16.app +8868vip130.app 886966.com 886abc.com 886vps.com @@ -8367,7 +8258,6 @@ 88fang.com 88gogo.com 88h3.com -88hmjy.com 88hom.com 88ht.com 88hu.com @@ -8402,7 +8292,6 @@ 88zjzy.com 89006006.com 8910.io -8910.la 89178.com 892qipai.com 89303.com @@ -8435,7 +8324,6 @@ 8btc.com 8btm.com 8cname.com -8cnd.com 8cnet.com 8ddao.com 8dei.com @@ -8461,6 +8349,7 @@ 8gyu.com 8hgame.com 8hsleep.com +8i8b.com 8jdns.net 8jiaoye.com 8jie8.com @@ -8471,7 +8360,6 @@ 8kjl34x2gj08.com 8kkcny.click 8kmm.com -8kvkt7.com 8kwebs.com 8kzjuqu.com 8kzw.com @@ -8502,10 +8390,10 @@ 8pig.com 8pingce.com 8pu.com -8q88n.icu 8qwe5.com 8qzy.com 8r9t8.com +8rn4u.com 8s123.com 8shop.cc 8so.net @@ -8515,7 +8403,6 @@ 8tool.club 8tupian.com 8tupian.net -8twan.com 8u18.com 8u58.com 8ug.icu @@ -8607,7 +8494,6 @@ 91378.com 913vr.com 913you.com -91472.com 915.com 915.tv 9154wan.com @@ -8625,7 +8511,6 @@ 9188.com 918canyin.com 918dxs.com -918haoma.com 918ka.cc 918rc.com 919.com @@ -8685,7 +8570,6 @@ 91guzhi.com 91haigui.com 91haiju.com -91haofs.com 91haoka.com 91haoke.com 91health.net @@ -8785,6 +8669,7 @@ 91up.com 91vpn.com 91vps.com +91vrchat.com 91vst.com 91waijiao.com 91waitang.com @@ -8796,11 +8681,12 @@ 91weimi.com 91wenmi.com 91wenwen.net +91wink.com 91wllm.com -91wri.com 91wujia.com 91wutong.com 91wzg.com +91xch.com 91xcm.com 91xfw.com 91xiake.com @@ -8885,7 +8771,6 @@ 92scj.com 92shuoshuo.com 92sucai.com -92tianjin.com 92to.com 92txt.cc 92u93e.com @@ -8908,18 +8793,13 @@ 933.moe 934dsw.com 934hd.com -9355.com 935676yfc.com 93636.com 93692zubo66936.com 936u.com -937-2.vip -937-3.vip -937-6.vip 9377.com 937791.com 9377a.com -9377aa.com 9377co.com 9377d.com 9377df.com @@ -8930,12 +8810,10 @@ 9377ne.com 9377os.com 9377s.com -9377si.com 9377z.com 93913.com 939394.xyz 93966.com -93bok.com 93eu.com 93gaokao.com 93hdw9.com @@ -9166,9 +9044,7 @@ 9718.com 9718game.com 9724.com -973216.xyz 97576.com -975bl.com 97616.net 976186.cc 97654.com @@ -9318,6 +9194,7 @@ 998jk.com 998jx.com 998law.com +998tool.com 9991.com 999120.net 999125.com @@ -9427,9 +9304,7 @@ 99tianji.com 99tongxuelu.com 99uri.com -99vf.com 99weiqi.com -99wenku.com 99wj.com 99wuxian.com 99xr.com @@ -9561,7 +9436,6 @@ 9pkw.com 9qu.com 9sb.net -9see.com 9sgx.com 9shadow.com 9shoubiao.com @@ -9587,7 +9461,6 @@ 9w9.com 9wad.com 9wan8.com -9wanjia.com 9wee.com 9wee.net 9wuli.com @@ -9697,7 +9570,6 @@ aa65535.com aa6666.com aa76858896.com aa77kk.com -aa8828.com aaalawfirm.com aaalian.com aaalogisticsgroup.com @@ -9739,7 +9611,6 @@ aatccn.com aateda.com aauc.net aavisa.com -aaw.asia aawvw.com aaxinwen.net aaygw.com @@ -9793,7 +9664,6 @@ abcpost.com.au abcrcw.com abcs8.com abcsbank.com -abcsee.net abctime.com abcve.com abcxb.com @@ -9812,14 +9682,12 @@ abesmoke.com abhouses.com abiaogw.com abiechina.com -abiestem.com abifsey.com abitcg.com abite.com abiz.com abkou.com abl.asia -ablanxue.com able-elec.com ablejeans.com ablesci.com @@ -9924,10 +9792,7 @@ acg18s.com acg4.com acg6.com acgaa.xyz -acgaf.com -acgaf.gay acgdb.com -acgdoge.net acgist.com acglivefan.com acgmc.com @@ -10033,7 +9898,6 @@ ad5.com ad518.com ad7.com ad778.com -ad9377.com ada-post.com adamahf.com adamcoder.com @@ -10073,7 +9937,6 @@ adesk.com adeskpro.com adexplain.com adfaith.com -adflying.com adfortest.com adfunlink.com adfuns.com @@ -10176,7 +10039,6 @@ adtianmai.com adtime.com adtmm.com adttt.com -adtxl.com aduan.cc adubest.com aduer.com @@ -10208,6 +10070,7 @@ adwintech.com adwke.com adwo.com adx.ms +adx.pw adx666.com adxflow.com adxhi.com @@ -10218,7 +10081,6 @@ adxmax.com adxmq.com adxpand.com adxqd.com -adxquare.com adxvip.com adxwork.com adxyun.com @@ -10244,7 +10106,6 @@ aecichina.com aecname.com aeconomic.com aecsian.com -aeeboo.com aeenergy.com aeenets.com aeespace.com @@ -10299,7 +10160,6 @@ afdiancdn.com afdsc.com afdvr.com afengblog.com -afengseo.com afengsoft.com afenxi.com affann.com @@ -10365,7 +10225,6 @@ agrodt.com agrofairs.com agrosg.com agrowingchina.com -agsfz.com agstt.com agtech.ltd agucn.com @@ -10376,7 +10235,6 @@ agvag.com agxs.net ah-inter.com ah-suuwaa.com -ah-xichuang.com ah-zl.com ah12333.com ah163.com @@ -10552,7 +10410,6 @@ ahshbszyyy.com ahsj-group.com ahsjxjy.com ahsjyxh.com -ahslxzj.com ahspxh.com ahsqjt.com ahssgs.com @@ -10589,7 +10446,6 @@ ahwwnews.com ahwwx.com ahwxcs.com ahwxhr.com -ahx.asia ahxcyy.com ahxmgk.com ahxunbu.com @@ -10719,7 +10575,6 @@ aicydb.com aida64.cc aida64cn.com aidabest.com -aidafen.com aidai.com aidaijia.com aidaily.com @@ -10867,12 +10722,10 @@ aijiajiankang.com aijianji.com aijiatui.com aijiayou.com -aijieneng.com aijingu.com aijishu.com aijiuku.com aijizhang.net -aiju.com aijuhome.com aijunwang.com aik.com @@ -10904,7 +10757,6 @@ aili.com ailiao360.com ailibang.com ailibi.com -ailicee.com ailinglei.com ailingmao.com ailinux.net @@ -11008,7 +10860,6 @@ aiqiyivip.com aiqle.com aiqu.com aiqu.design -aiquanmeng.com aiquxs.com aiqygogo.com air-level.com @@ -11073,7 +10924,6 @@ aishangba.org aishanghaibao11.com aishangyangyu.com aisharenet.com -aishdxz.com aishengji.com aishenhua.com aishuge.cc @@ -11102,11 +10952,11 @@ aispeech.com aispreadtech.com aistar.site aistar666.com +aistudio-app.com aisx.cc aisy.com aitansuo.com aitaotu.com -aitaxinxi.xyz aitcfw.com aite.xyz aitecar.com @@ -11131,7 +10981,6 @@ aituanche.com aitutu.cc aitype.net aiufida.com -aiuw.com aiuxdesign.com aiuxian.com aiuxstudio.com @@ -11240,7 +11089,6 @@ aizhan.com aizhantj.com aizhanzhe.com aizhengli.com -aizhenrong.com aizhet.com aizhibo.net aizhishang.com @@ -11308,7 +11156,6 @@ akcomemetals.com akdashang.vip akdns.net akesobio.com -akesu56.com akey.im akey.me akeyun.com @@ -11358,7 +11205,6 @@ alafy.com alai.net alameal.com alancui.cc -alanhou.com alanqi.com alantorp.online alanyhq.com @@ -11571,6 +11417,7 @@ alixv.com aliyiyao.com aliyizhan.com aliyue.net +aliyun-esa.net aliyun-inc.com aliyun-iot-share.com aliyun.com @@ -11745,6 +11592,7 @@ allinpay.com allinpaygx.com allinpayhb.com allinpaysz.com +allinso.com alllandnet.com alllget.com alllook.tv @@ -11847,7 +11695,6 @@ amayad.com amazfit.com amazingsys.com amazoni2.com -ambassador-sh.com ambassadorchina.com amberbj.com amberedu.com @@ -11887,6 +11734,7 @@ amindbox.com aminglinux.com amishii.com amishow.com +amiyabot.com amo-solar.com amo9.com amobbs.com @@ -11912,7 +11760,6 @@ amswater.com amtbbs.org amtf18.com amtjt.com -amtk.com amtron-ic.com amuletj.com amuletor.com @@ -11996,7 +11843,6 @@ andyx.net ane56.com aneasystone.com anei.tv -anessa.org anestcang.com anetuo.com anf-z.com @@ -12095,7 +11941,6 @@ anjifood.com anjilog.com anjimicro.com anjismart.com -anjixue.com anjoyfood.com anjubao.com anjujituan.com @@ -12246,7 +12091,7 @@ antmoe.com antom.com antpcdn.com antpedia.com -antquan.com +antplay888.com antriver.com antrol.com antsdaq.com @@ -12307,6 +12152,7 @@ anybox.com anychem.com anycoh.com anycross.com +anycubic.com anye.xyz anyelse.com anyew.com @@ -12343,7 +12189,6 @@ anywood.com anyxz.com anzerclub.com anzext.com -anzeyun.com anzhen.org anzhengshipin.com anzhi.com @@ -12380,6 +12225,7 @@ aodabo.tech aodaliyaqianzheng.com aodbw.com aoddoll.com +aode8.com aodeline.com aodeng.cc aodianyun.com @@ -12412,7 +12258,6 @@ aojoo.com aoju.net aokang.com aokangsports.com -aokwx.com aolai.com aolaigo.com aoligei.site @@ -12468,7 +12313,6 @@ aovud.com aowei-sh.com aowei.com aowenmarketing.com -aowugame.com aoxiang100.com aoxintong.com aoxsb.com @@ -12535,13 +12379,13 @@ api.anythinktech.com api.so apiairasia.com apiandroid.com -apiapple.com apicase.io apicgate.com apichina.com apickup.com apicloud.com apifox.com +apifoxmock.com apigwtencent.com apilyzy.com apim.work @@ -12593,7 +12437,6 @@ apodaenvi.com apollo-platform.com apollo-share.com apollo.auto -apollocode.net apollopump.com apollotop.com apous.com @@ -12680,7 +12523,6 @@ appnode.com appol.com appollochina.com appotronics.com -apppoo.com appqv.com appresource.net approvebook.com @@ -12689,10 +12531,12 @@ appscan.io appsflower.com appsflyer-cn.com appshike.com +appshop.cc appsimg.com appsina.com appso.com apptao.com +apptaxi.net apptrackerlink.com appubang.com appublisher.com @@ -12791,6 +12635,7 @@ ar0101.com arabsquash.com aragexpo.com araldite2014.com +aranya.cc arapp.online aray1981.com arayzou.com @@ -12907,7 +12752,6 @@ artexamcq.com artfinace.com artfoxlive.com artgogo.com -artgoin.com arthals.ink arthing.org arthome163.com @@ -12979,8 +12823,6 @@ aschina.org aschip.com aschtj.com asciima.com -ascloud.tech -ascn.site asczwa.com asczxcefsv.com asd.red @@ -13052,7 +12894,6 @@ asim-emc.com asimi8.com asit.cc asjnu.com -asjrv.com ask.amd.com askbrisk.com askci.com @@ -13062,7 +12903,6 @@ askemq.com asketchup.com askk.cc asklib.com -asklicai.com asklink.com askpanda.cc askququ.com @@ -13076,7 +12916,6 @@ asleyu.com aslk2018.com asls.space aslvyou.com -aslzw.com asm64.com asmasm.com asmlc.com @@ -13090,7 +12929,6 @@ aso100.com aso114.com aso120.com asoasm.com -asohlw6.com asp168.com asp300.com asp300.net @@ -13191,6 +13029,7 @@ ating.info atjoqgi.com atk-film.com atk.pro +atkgear.com atlab.ai atlaslovestravel.com atlhb.com @@ -13425,7 +13264,6 @@ avicnews.com avicsec.com avicsgt.com avicui.com -avidbird.com avilive.com avinex.com avischina.com @@ -13611,6 +13449,7 @@ axa123.com axatp.com axbsec.com axbur.com +axcadsf.cfd axcf.com axentbath.com axera-tech.com @@ -13633,7 +13472,6 @@ axmro.com axmw.com axnsc.com axq66.com -axqbs.com axqqq.com axqswm.net axs8.com @@ -13648,10 +13486,10 @@ axxsw.org axybio.com axyxt.com axzchou.com -axzhaofang.com ay-china.com ay-health.com ay001.com +ay001.net ay2fy.com ay57.com ay5y.com @@ -13686,7 +13524,6 @@ aykj.net ayklgas.com aymym.com aynchem.com -ayok.xyz ayoushu.com ayqy.net ayrbs.com @@ -13704,10 +13541,8 @@ ayudasalud.com ayump.com ayunlian.com ayuren.com -ayuwoe.com ayuyun.com ayw.ink -ayxbk.com ayxz.com ayzzxx.com az009.com @@ -13816,7 +13651,6 @@ b6522.com b7av.com b7l.cc b8kk.com -b8th-hzvac3.com b8yx.com b9ad.com ba-li.com @@ -13861,7 +13695,6 @@ babymozart.cc babyqiming.com babytree.com babytreeimg.com -bacaimao.com bacaizi.com bacaola.com bacaoo.com @@ -13971,7 +13804,6 @@ baidu-nj.com baidu-tech.com baidu-wenxue.com baidu.cc -baidu.cm baidu.com baidu.mobi baidu.to @@ -13986,7 +13818,6 @@ baidubos.com baiducontent.com baidudaquan.com baidudw.com -baidufcjx.com baidufe.com baidufree.com baiduhtml5.com @@ -13998,7 +13829,6 @@ baidupcs.com baidupcs.net baidupeixun.com baidusmartapps.com -baidusobing.com baidustat.com baidustatic.com baidusx.cc @@ -14021,7 +13851,6 @@ baiduyundns.net baiduyunsousou.com baiduzjn.com baieryk.com -baifabohui.com baifae.com baifang.in baifangdianqi.com @@ -14056,7 +13885,6 @@ baihui.com baihui.live baihui168.com baihuibio.com -baihuikucun.com baihuillq.com baihuiyaoye.com baihuwang.com @@ -14098,7 +13926,6 @@ baikeshushu.com baikevod.com baikewenda.com baikexueshe.com -baikeyo.com baikezh.com baikuangyou.com bailb.com @@ -14195,6 +14022,7 @@ baitaiz.com baitanheichang.com baitaoidc.com baitdu.com +baite666.com baithu.com baitianinfo.com baitiao.com @@ -14247,6 +14075,7 @@ baiyou100.com baiyu.tech baiyuandian.cc baiyuemi.com +baiyujingfeng.com baiyumedia.com baiyun-hotel.com baiyunairport.com @@ -14269,7 +14098,6 @@ bajasaechina.com bajiahao.com bajie1.com bajiebofang.com -bajiehechuang.com bajiexinxi.net bajintech.com baka.im @@ -14277,7 +14105,6 @@ baka.plus bakaxl.com bakbitionb.com bakclass.com -bakehr.net bakingerp.com baklib.com bakpower.com @@ -14426,7 +14253,6 @@ bankoftianjin.com bankoftieling.com bankofvolc.com bankofyk.com -bankpublish.com banksteel.com bankyellowriver.com banlikanban.com @@ -14456,6 +14282,7 @@ banshier.com bantangapp.com bantangbuy.com banwagong.men +banwagongcn.com banwagongzw.com banwo365.com banwoo.net @@ -14561,7 +14388,6 @@ baojinling.com baojule.com baojun.net baojunev.com -baokan.name baokan.tv baokang.com baokanhuicui.com @@ -14678,7 +14504,6 @@ baozugongkeji.com baozun.com baozy.com bapengpc.com -bapima360.com baping.com baqi28.com baqiu.com @@ -14869,7 +14694,6 @@ bbwfish.com bbwgw.com bbwhy.com bbwict.com -bbwnt.com bbwoils.com bbwotc.com bbwport.com @@ -14999,7 +14823,6 @@ bdf2.com bdfczx.com bdfmj.com bdfmkj.com -bdfyst.com bdfyy999.com bdfzcd.net bdfzkyy.com @@ -15093,7 +14916,6 @@ bdyz.xyz bdzhipin.com bdzjdsagslb.com bdzxgps.com -bdzyxx.com be-xx.com be1775.com be4f.com @@ -15111,6 +14933,7 @@ bearyboard.com bearychat.com beastush.com beasure.com +beatbeatone.com beats-digital.com beatsbydre.com beaucare.org @@ -15176,7 +14999,6 @@ beicaiyuan.com beicdn.com beichende.com beicity.com -beidahuang.net beidasoft.com beidd.com beidian.com @@ -15260,7 +15082,6 @@ beijingrc.com beijingrc.net beijingrenyi.com beijingsanchi.com -beijingsheying.net beijingtaixie.com beijingtoon.com beijingtrucks.com @@ -15292,7 +15113,6 @@ beimeigoufang.com beimeihongfeng.com beimeizhijia.com beimeizhiying.com -beina.cc beinglab.com beingmate.com beipenggroup.com @@ -15346,7 +15166,6 @@ belgiumvisacenterd.com beliefbiomed.com beliefy.com belimked.com -belle-vie.xyz belle8.com belletrip.com bellinlaser.com @@ -15359,7 +15178,6 @@ beltxman.com bemanicn.com bemfa.com bemhome.com -bemro.com benapple.net benbenlong.com benber-tech.com @@ -15375,7 +15193,6 @@ bendiso.com bendiw.cc bendizhidao.com benduo.net -benellimotor.com benewake.com benfuip.com bengbeng.com @@ -15508,6 +15325,7 @@ besticity.com bestincapi.com bestincapp.com bestjy.net +bestkids.net bestlee.net bestlosslessmusic.com bestmate.net @@ -15639,7 +15457,6 @@ bfzhan.com bg45.com bg7ywl.com bgbfds.com -bgbg00.fun bgbjjtd.com bgbk.org bgbluesky.com @@ -15707,7 +15524,6 @@ bh568.com bh8sel.com bhabb.com bhakte.com -bhbaihua.com bhccn.com bhcd.net bhcgky.com @@ -15731,7 +15547,6 @@ bhgjjy.com bhgmarketplace.com bhgroups.com bhgsb.com -bhgshb.com bhhfsc.com bhhospital.com bhhsx.com @@ -15742,6 +15557,7 @@ bhjck.com bhjcsc.com bhjinghao.com bhjjj360.com +bhjuxian.com bhkyxy.com bhlib.com bhlietu.com @@ -15781,7 +15597,6 @@ bhxxpt.com bhxz.net bhybskq.com bhyby.com -bhycjdyp.com bhyintan.com bhyueda.com bhyuu.com @@ -15999,7 +15814,6 @@ bijiao.org bijiasso.com bijiatu.com bijienetworks.com -bijikang.com bijingdi.com bijirim.com bijixia.net @@ -16011,6 +15825,7 @@ bikehome.net biketo.com biketour-giant.com biking-m.com +bilalipay.com bilandtech.com bilezu.com bilfinance.com @@ -16045,6 +15860,7 @@ biliimg.com biliintl.co biliintl.com bilimanga.net +bilinl.com bilinovel.com biliui.com bilive.com @@ -16085,6 +15901,7 @@ binfang.com binfen.tv binfenniao.com binfenquzu.com +binfenshikong.com binfenyeke.com binfenyingyu.com binfenzhilv.com @@ -16220,7 +16037,6 @@ biqg8.com biqiao.net biqige.cc biqiuge.com -biqiwu.org biqu.ge biqu6.com biquan8.com @@ -16300,7 +16116,6 @@ bisonglighting.com bisonscm.com bisp.com bistream.net -bit-king.net bitahub.com bitauto.com bitautoimg.com @@ -16438,7 +16253,6 @@ bj-kpn.com bj-nego.com bj-pr.com bj-px.com -bj-ranqi.com bj-sea.com bj-shouqi.com bj-syc.com @@ -16584,7 +16398,6 @@ bjfqy.com bjfriendshiphotel.com bjfsali.com bjfsk.xyz -bjfyw.org bjfzst.com bjgas.com bjgasgh.com @@ -16653,7 +16466,6 @@ bjhzzs.com bjiab.com bjiae.net bjiaep.com -bjias.com bjicpark.com bjicrm.com bjidc.net @@ -16712,10 +16524,8 @@ bjkqyx.com bjkrtwl.com bjkswy.com bjktaz.com -bjktrh.com bjktwe.com bjkxgroup.com -bjkzcs.com bjl777.com bjlacc.com bjlangbo.com @@ -16727,7 +16537,6 @@ bjlevsoft.com bjlg.com bjlkhd.net bjllsy.com -bjlmfq.com bjlmg.com bjlongview.com bjlot.com @@ -16764,7 +16573,6 @@ bjnkzx.com bjnsr.com bjnxgbyy.com bjota.com -bjoutai.com bjp321.com bjpag.com bjpcyd.com @@ -16793,7 +16601,6 @@ bjqykc.com bjqzhd.com bjqzzh.net bjraee.com -bjranqigz.com bjrc.com bjrcb.com bjrdhx.com @@ -16815,7 +16622,6 @@ bjsasc.com bjsava.com bjsbnet.com bjscfl.com -bjscp.com bjscszh.com bjscyxh.com bjsdcm.net @@ -16862,8 +16668,6 @@ bjsubway.cc bjsubway.com bjsuewin.com bjsunhouse.com -bjsvp35.space -bjsvp38.space bjsxdgzc.com bjsxjt.com bjsxt.com @@ -16965,7 +16769,6 @@ bjyingge.com bjyingyun.com bjyirui.com bjyizhimei.com -bjyjqi.com bjylhyxh.com bjyme.com bjyn.com @@ -16996,6 +16799,7 @@ bjzg.com bjzgh.org bjzgh12351.org bjzghd.com +bjzhaxikj.net bjzhcc.com bjzhiborui.com bjzhishi.com @@ -17035,6 +16839,7 @@ bjzzdb.com bjzzrx.com bjzzschool.com bk-cdn.com +bk-cdn01.com bk3r.com bk41.net bk5u.com @@ -17062,7 +16867,6 @@ bkpcn.com bkqq.com bkrgame.com bkscc.com -bkt123.com bktencent.com bktsj.com bkuax.com @@ -17086,15 +16890,12 @@ blackshow.me blackswancake.com blackxl.org blakat.cc -blankshell.com -blastracshotblastmachines.com blazefire.com blazefire.net blazor.zone blbl.online blbx.com blctsy.com -blctwed.com bld365.com bldimg.com bldlive.com @@ -17131,7 +16932,6 @@ bllzgqbyp.com blm.net blmpb.com bln8.com -blnovel.com blockchain.hk blockchain123.com blockchainlabs.org @@ -17237,7 +17037,6 @@ blueskystudy.com blueskyxn.com blueslc.tech bluesoleil.com -bluestar-pc.com bluestep.cc bluetime.com bluetowngroup.com @@ -17302,7 +17101,6 @@ bmobpay.com bmoook.com bmp.ovh bmpj.net -bmqy.net bmrtech.com bmrtjt.com bms16.com @@ -17312,7 +17110,6 @@ bmtrip.com bmw8033.com bmwallpaper.com bmwnc.com -bmwsteelart.com bmxinfang.com bmzxw.com bn21.com @@ -17361,7 +17158,6 @@ boaovm.com bob-cardif.com bob-leasing.com bob.com -bobai520.com bobaow.com bobbns.com bobcare.com @@ -17481,7 +17277,6 @@ boke.com boke.one boke.pw boke112.com -boke123.net boke8.net bokecc.com bokecs.net @@ -17520,7 +17315,6 @@ bolo.video bolongxm.com bolq.com boltp.com -boluo.link boluogouwu.com boluomee.com boluomeet.com @@ -17561,7 +17355,6 @@ booea.com booen.co booeoo.com boohee.com -book-os.com book118.com book1993.com bookabc.net @@ -17626,13 +17419,11 @@ boqianpvm.com boqii.com boqiicdn.com boqugew.com -boquxinxi.com boracaybestdeals.com borain.com borcci.com borderlessbd.com borenhospital.com -borgheseonline.com borlonclan.com born-tw.com born123.com @@ -17725,7 +17516,6 @@ boxiaole.com boxilink.com boxisign.com boxjango.com -boxuanlw.com boxuegu.com boxueio.com boxui.com @@ -17786,9 +17576,7 @@ bpxxfw.com bpxxvo.com bpztsxx.com bq04.com -bqatj.com bqfy.com -bqg3.com bqg8.cc bqg8.la bqg99.cc @@ -17889,7 +17677,6 @@ brtpawn.com brttc.com brtv.xyz brtvcloud.com -brtxpump.com brunoxu.com brxjzp.com brxtal.com @@ -17905,7 +17692,6 @@ bs2005.com bsagit.com bsbgjj.com bsbkjt.com -bsbxyy.com bsbydd.com bscabank.com bsccdn.com @@ -17960,7 +17746,6 @@ bsmatrix.com bsmjdjzx.com bsmy.cc bsmz.net -bsncdn.xyz bsnljt.com bspapp.com bsping.com @@ -17984,7 +17769,6 @@ bstj.com bstjiaoyu.com bstjt.com bstzcs.com -bsuc.cc bsurl.cc bswtan.com bswxw.com @@ -18038,6 +17822,7 @@ btdy.com btechina.com btedu.net btgame.com +btgcjs.com btgdt.com btgljt.com btgtravel.com @@ -18222,7 +18007,6 @@ buxiugangban.net buy-bar.com buy-copi888.com buy-copys888.com -buy-ics.com buy0596.com buyanshufa.com buyaocha.com @@ -18311,14 +18095,12 @@ bxgkzy.com bxgmmw.com bxgshengwang.com bxgt.com -bxgxcl.com bxgycfsb.com bxhaibao.com bxjob.net bxjyxx.net bxkejian.com bxktv.com -bxkxw.com bxlac.com bxldz.com bxltw.com @@ -18326,7 +18108,6 @@ bxmd51.com bxnfsy.com bxnjmj.com bxpedia.com -bxqgk.icu bxr.im bxrfund.com bxshopya.com @@ -18350,7 +18131,6 @@ bxzwapp.com bxzxw.com by-health.com by-leasing.com -by126.com by56.com by6.app by6sx.com @@ -18597,7 +18377,6 @@ bzd6688.com bzddrive.com bzfar.com bzfpms.com -bzfscl.com bzfwq.com bzfwy.com bzfwzs.com @@ -18634,7 +18413,6 @@ bzszyy123.com bzt120.com bztdxxl.com bzvtc.com -bzw315.com bzwater.com bzwz.com bzwzw.com @@ -18664,7 +18442,6 @@ c-jet.com c-lodop.com c-markaudio.com c-nin.com -c-ofc.com c-ps.net c-rst.com c-snd.com @@ -18778,7 +18555,6 @@ cactifans.com cactmc.com cad1688.com cad2688.com -cad7v18vchs.com cad8.net cad888.com cada.cc @@ -18865,6 +18641,7 @@ caihong5g.com caihong8888.com caihongbashi.net caihongche.com +caihongduoduo.com caihongjia.com caihongjianzhan.com caihongmeng.com @@ -18875,6 +18652,7 @@ caihongx.com caihoo.com caihuapak.com caihuicloud.com +caihuoxia.com caiips.com caij100.com caijing365.com @@ -18923,7 +18701,6 @@ caipiaogu.com caipintu.com caipopo.com caipucaipu.com -caipucn.com caiqizhe.com cairenhui.com cairongquan.com @@ -18944,6 +18721,7 @@ caitun.com caituyou.com caiu8.com caiweiming.com +caiwennews.com caiwu51.com caiwuchina.com caixin.com @@ -18966,7 +18744,6 @@ caizhihr.com caj11.com cake400.com cake6.com -cakfw.com calab88.com calawei.com calb-tech.com @@ -19050,7 +18827,6 @@ cang.com cangdu.org cangfengzhe.com canghaimachine.com -cangjiaohui.com canglanghospital.com cangmang.xyz cangoonline.com @@ -19068,6 +18844,7 @@ canhighcenter.com canhot.net caniculab.com canidc.com +canjio.com cankao100.com cankaoshouce.com cankaoxiaoxi.com @@ -19091,7 +18868,6 @@ canway.net canwayit.com canwaysoft.com canxingmedia.com -canyidian.com canyin.cc canyin.com canyin168.com @@ -19099,10 +18875,7 @@ canyin2017.com canyin375.com canyin88.com canyincha.com -canyincy.com -canyingroup.com canyinzixun.com -canyon-model.com canyouchina.com canyousoftware.com canyuanzs.com @@ -19152,7 +18925,6 @@ caotu66.com caovan.com caoxianfc.com caoxie.com -caoxile.com caoxiu.net caoxudong.info caoyudong.com @@ -19169,7 +18941,6 @@ capjoy.com cappdr.org capsuleshanghai.com captain-cro.com -capture7.com capvision.com capwhale.com caqzlsgs.com @@ -19300,6 +19071,7 @@ cat-cn.com cat898.com catalike.com catalyst-loading.com +catcat321.com catchingdoll.com catchyrime.com catdggga.com @@ -19329,7 +19101,6 @@ catweiqi.com catyun.cc caua1988.com caua99.com -caufuyu.com caup.net caupd.com caupdbj.com @@ -19372,7 +19143,6 @@ cbhb.biz cbi360.net cbiachina.com cbiao.com -cbibyg.com cbice.com cbiec.com cbiec.net @@ -19438,6 +19208,7 @@ ccarting.com ccasn.com ccasy.com ccatcloud.com +ccatnet.com ccawz.com ccb.com ccbbn.org @@ -19587,6 +19358,7 @@ ccit360.com ccita.net ccitimes.com cciup.com +ccj88.com ccjec.com ccjhdljs.com ccjkwjjedu.com @@ -19603,6 +19375,7 @@ cckefu1.com cckefu3.com cckggroup.com ccknbc.cc +cckyedu.com cclawer.com cclawnet.com cclbook.com @@ -19701,6 +19474,7 @@ ccqtgb.com ccqtm.com ccqyj.com ccrate.cc +ccrc.com ccrfmed.com ccrgt.com ccrice.com @@ -19788,6 +19562,7 @@ ccutu.com ccv160.com ccv168.com ccview.net +ccvui.com ccwcw.com ccwcyw.com ccwifi.cc @@ -19877,9 +19652,7 @@ cdchjyy.com cdchuandong.com cdcitypark.com cdcoslm.com -cdcs34.fun cdcxhl.com -cdcxsd.com cdcyts.com cddayun.com cddc56.com @@ -19964,7 +19737,6 @@ cdjzw.com cdjzzg.com cdkeynogap.com cdkf.com -cdkfly.com cdkjbg.com cdkjw.org cdkyfc.com @@ -19983,6 +19755,7 @@ cdmaria.com cdmcaac.com cdmddyf.com cdmfund.org +cdmgiml.com cdmhwh.com cdmjwater.com cdmmlxs.com @@ -20004,6 +19777,7 @@ cdn.shanghai.nyu.edu cdn.show cdn.vin cdn08.com +cdn1.vip cdn1008.com cdn1218.com cdn16.com @@ -20022,6 +19796,7 @@ cdn365lc.vip cdn40.com cdn56.com cdn778.com +cdn86.com cdn86.net cdn90.com cdn90.net @@ -20049,6 +19824,7 @@ cdnddd.net cdndm.com cdndm5.com cdndm5.net +cdndns.vip cdndns1.com cdndns2.com cdndo.com @@ -20064,7 +19840,6 @@ cdnexus.com cdnf.cc cdnff.com cdngia.com -cdngogo2.cc cdngot.com cdngslb.com cdngslb8.com @@ -20157,7 +19932,6 @@ cdnvp.com cdnvpn.net cdnvue.com cdnwaf.net -cdnyfc.com cdnyoyun.com cdnyt69.com cdnyyds999.com @@ -20184,7 +19958,6 @@ cdren.com cdren.net cdrich.com cdrjob.com -cdrmagic.com cdronghai.com cdrqxh.com cdrsigc.com @@ -20194,7 +19967,6 @@ cds-seal.com cdsb.com cdsb.mobi cdscdscdn.com -cdscs990.fun cdsenfa.com cdsgsz.com cdshangceng.com @@ -20220,7 +19992,6 @@ cdsxlc.com cdt-ec.com cdt-md.com cdt-re.com -cdtaishan.com cdtianda.com cdtkdw.com cdtlev.com @@ -20234,7 +20005,6 @@ cduncname.com cdvcloud.com cdvisor.com cdwulian.com -cdwx1.com cdxdyy.com cdxrdz.com cdxsxbx.com @@ -20254,13 +20024,11 @@ cdynt.com cdyou.net cdyrjygs.com cdysxx.com -cdysxxe.com cdysxy.com cdyushun.com cdyywz.com cdyzhotel.com cdzdgw.com -cdzdhx.com cdzgh.com cdzgzs.com cdzhsj.com @@ -20334,7 +20102,6 @@ ceepsp.com ceeunion.com cef114.com ceggd.com -ceherbs.com cehiy.com cehome.com cehuan.com @@ -20400,6 +20167,7 @@ centainfo.com centaland.com centanet.com centauriglobal.com +centbrowser.net centec.com cententcymbals.com centercmslinks.com @@ -20453,7 +20221,6 @@ ceppea.net ceppedu.com ceprei.com ceprei.org -ceprintdesign.com cer.net ceracdn.net ceradir.com @@ -20469,7 +20236,6 @@ cernet2.net cersign.com cersp.com certlab.org -ceruchina.com ceryt111.fun ces-transaction.com cese2.com @@ -20525,9 +20291,7 @@ cfchint.com cfcpn.com cfd-china.com cfd163.com -cfda.pub cfdp.org -cfdvd779.fun cfdwater.com cfecq.com cfedu.net @@ -20605,7 +20369,7 @@ cg-schools.com cg009.com cg100iii.com cg1993.com -cg2017.com +cg3da.com cg98.com cg99.com cgacar.com @@ -20652,7 +20416,6 @@ cgnei.com cgnjy.com cgnmc.com cgnne.com -cgoiiq.com cgonet.com cgowater.com cgown.com @@ -20720,7 +20483,6 @@ chacd.com chacewang.com chacha.com chachaba.com -chacharen.com chachawenshu.com chache-cn.com chache808.com @@ -20779,6 +20541,7 @@ chakonghao.com chakuaizhao.com chalaili.com chalangautozone.com +chalaoshi.de chalcochem.com chalieco.com challenge-21c.com @@ -20841,6 +20604,7 @@ changheng88.com changhong-network.com changhong.com changhongit.com +changhongnetwork.net changhu12333.com changhualaw.com changhuist.com @@ -20886,7 +20650,6 @@ changshuohr.net changtong2800.com changtounet.com changtubus.com -changtudaohang.com changuanjia.com changwang.com changwankeji.com @@ -20964,11 +20727,9 @@ chaoluoluo.com chaonanclub.com chaonanrc.com chaonei.com -chaonenglu.com chaopaiyizu.com chaopx.com chaoren.com -chaorenxiu.com chaoschina.com chaosec.com chaoshanren.com @@ -21011,15 +20772,16 @@ charmdeer.com charmingglobe.com charmkeytextile.com charmsunfund.com -charsesdneyse.com chartboost-china.com chaseyanyu.net chashebao.com chashudi.com +chat778.com chatairc.com chatanywhere.tech chatartpro.com chateaustarriver.com +chatglm.site chatgptboke.com chatgpter.com chatm.com @@ -21034,6 +20796,7 @@ chaxinyu.net chaxun.biz chaxunchina.com chaxunfapiao.com +chaxunjiao.com chayanfamily.com chayangge.com chaye.com @@ -21056,7 +20819,6 @@ chbpp.com chce-expo.com chcedo.com chceg.com -chcihe.com chcmu.com chcnav.com chcoin.com @@ -21106,6 +20868,7 @@ chebiao.cc chebiao.net chebrake.com checar.mobi +chechakj.com chechaoxue.com checheng.com chechong.com @@ -21187,7 +20950,6 @@ chemourscg.com chempacific-china.com chemptc.com chemrc.com -chemsb.com chemsrc.com chemtour.com chemwells.com @@ -21207,6 +20969,7 @@ cheng-sen.com cheng.xin chengaizixun.com chengan-web.com +chengan.tech chengbanggroup.com chengcai.net chengchuanren.com @@ -21294,14 +21057,12 @@ chengyouyun.com chengyuanwenquan.com chengyucidian.net chengyun.com -chengyushangba.com chengyuwan.com chengyuwb.com chengyuxi.com chengzhaoxi.xyz chengzhinj.com chengzhongmugu.ltd -chengzhongmugu.vip chengzijianzhan.cc chengzijianzhan.com chengzivr.com @@ -21358,9 +21119,9 @@ chenyifaer67373.com chenyistyle.com chenyongqi.com chenyou123.com +chenyu.me chenyudong.com chenyuemz.com -chenyuzw.com chenyyds.com chenzao.com chenzhicheng.com @@ -21403,7 +21164,7 @@ chetxia.com chetxt.com chevip.com chevlen.com -cheweixiu.com +cheweiguanjia.com chewen.com chewulin.com chexian9.com @@ -21474,7 +21235,6 @@ chiefmore.com chiefpharma.com chieftin.org chietom.com -chifeikeji.com chihao.com chihe.so chihealbio.com @@ -21484,14 +21244,12 @@ chihkao.com chihm.com chiji-h5.com chiji.app -chikitsatour.com childjia.com childlib.org childrentheatre.org chileaf.com chili3d.com chillyroom.com -chiluyingxiao.com chilwee.com chimbusco.com chimelong.com @@ -21506,7 +21264,6 @@ china-anhe.com china-applefix.com china-asahi.com china-aseanbis.com -china-asm.com china-audit.com china-autotech.com china-b.com @@ -21679,7 +21436,6 @@ china-qiao.com china-qjbz.org china-radiology.com china-re.net -china-reform.org china-refrigerants.com china-ric.com china-riscv.com @@ -21718,13 +21474,11 @@ china-tje.com china-tongyu.com china-topplus.com china-tops.com -china-touch.com china-tower.com china-toy-edu.org china-toy-expo.com china-train.net china-tsac.com -china-ufo.net china-uju.com china-up.com china-valve.com @@ -21866,7 +21620,6 @@ chinaboyun.com chinabreed.com chinabrightstone.com chinabsb.com -chinabudd.com chinabuildingcentre.com chinabulk.com chinabus.info @@ -21885,7 +21638,6 @@ chinacache.net chinacacm.org chinacaj.net chinacamel.com -chinacampus.org chinacapac.com chinacapg.com chinacarbide.com @@ -21949,7 +21701,6 @@ chinacosco.com chinacourt.org chinacpda.com chinacpda.org -chinacpx.com chinacqme.com chinacqpgx.com chinacqsb.com @@ -22157,7 +21908,6 @@ chinahpa.org chinahqjjw.com chinahr.com chinahrd.net -chinahrgy.com chinahrhq.com chinahrt.com chinahsdp.com @@ -22261,6 +22011,7 @@ chinalaobao.com chinalawbook.com chinalawedu.com chinalawinfo.com +chinalawyer.co chinalawyeryn.com chinaleather.com chinaleather.org @@ -22306,7 +22057,6 @@ chinamcloud.com chinamea.org chinameat.net chinamedicinej.com -chinameinv.com chinamendu.com chinamenwang.com chinamerger.com @@ -22315,13 +22065,11 @@ chinameyer.com chinamie.org chinamingyan.net chinamining.com -chinamishu.net chinamission.be chinamissun.com chinamobile.com chinamobiledevice.com chinamobileltd.com -chinamobilesz.com chinamost.net chinamotian.com chinamsa.org @@ -22382,7 +22130,6 @@ chinapbw.com chinapcd.com chinape168.com chinapearlk.com -chinapeelingmachine.com chinapeier.com chinapelletizer.com chinapeople.com @@ -22463,7 +22210,6 @@ chinaseed114.com chinasexq.com chinasg.com chinashadt.com -chinashaodong.com chinashenglu.com chinashengmao.com chinashj.com @@ -22566,6 +22312,7 @@ chinatrucks.com chinatsi.com chinatsp.com chinatt.com +chinattas.com chinattl.com chinatungsten.com chinatupai.com @@ -22651,7 +22398,6 @@ chinaxiv.org chinaxpp.com chinaxq.com chinaxqf.com -chinaxsjc.com chinaxuchuan.com chinaxuehang.com chinaxueqian.com @@ -22858,7 +22604,6 @@ chndesign.com chndoi.com chndoi.net chndoi.org -chndtb.com chnews.net chnfi.com chnfund.com @@ -22944,7 +22689,6 @@ choujue.net choukang.com choupangxia.com chouqu.com -chouti.cc chouti.com choututech.com chowtaiseng.com @@ -23048,14 +22792,13 @@ chuangweikeji.com chuangx.org chuangxin.com chuangxinapi.com +chuangxinbateng.com chuangxinoa.com chuangxuan.xyz chuangyebaba.com chuangyehai.com chuangyejia.com chuangyetv.com -chuangyi.co -chuangyichong.com chuangyijisu.com chuangyimao.com chuangyiqifu.com @@ -23084,7 +22827,6 @@ chuantangjitrade.com chuantec.com chuantiegroup.com chuantu88.com -chuanwu666.com chuanxincao.net chuanye.com chuanyifu.com @@ -23101,7 +22843,6 @@ chuban.cc chubanyun.me chubaodai.com chubaohui.com -chubh.com chucheng.wiki chuchujie.com chuchujue.com @@ -23109,7 +22850,6 @@ chuchur.com chufaba.me chufw.com chuge8.com -chugeyun.com chugou360.com chuguo78.com chuguohao.com @@ -23274,11 +23014,11 @@ cicphoto.com cict.com cidf.net cidi.ai +cidianbao.com cidiancn.com cidianso.com cidipp.com cidschina.com -ciduoduo123.com ciduw.com cie-lgr.com cieaast.com @@ -23397,7 +23137,6 @@ cirs-ck.com cirs-group.com cirs-reach.com cirscn.com -cirunzhang.com cisbeijing.com ciscon.org cisdish.com @@ -23458,7 +23197,6 @@ citswx.com citsxa.com citsyn.com citszz.com -citure.net citvc.com city12580.com city199.com @@ -23495,7 +23233,6 @@ ciwork.net cixcomputing.com cixibank.com cixiedu.net -cixiucn.com cixtech.com cixuanfuw.com ciyagroup.com @@ -23511,6 +23248,8 @@ ciyynodegroup.cyou cizip.com cj0515.com cj120.com +cj5bs.com +cj5bs.net cjaljs.com cjasen.com cjavapy.com @@ -23524,10 +23263,8 @@ cjdcw.com cjdg.com cjdropshipping.com cjdsp.com -cjdx1.com cjeduw.com cjftb.com -cjhb168.com cjhospital.com cjhxfund.com cjhydrogen.com @@ -23560,7 +23297,6 @@ cjjhb.com cjjhk.com cjjjs.com cjjnff.com -cjjunwei.com cjjygr.com cjk3d.net cjkhd.com @@ -23602,7 +23338,6 @@ cjwlb.com cjww.com cjx2.com cjxqjt.com -cjxwr.com cjxz.com cjycode.com cjys.net @@ -23661,7 +23396,6 @@ cl-power.com cl0438.com cl0579.com cl2009.com -cl8239.com cl868.com clady.cc claiks.com @@ -23684,7 +23418,6 @@ clawchat.com clayidols.com clb6.net clboss.com -clbpay.com clbu.club clbug.com clbz666.com @@ -23692,7 +23425,6 @@ clcgq.com clcindex.com clckblog.space clclibrary.com -clcmw.com clcoolyun.com clcwwyj.com clcz.com @@ -23736,6 +23468,7 @@ clijc.com climedic.com clinbrain.com clinicalmall.com +clivia.fun clj178.com cljport.com cljtscd.com @@ -23754,14 +23487,12 @@ cloopen.com cloopen.net cloopm.com closertb.site -clotfun.xyz clothes178.com clothjob.com clothr.com clotliu.com clouclip.com cloud-beijing.com -cloud-cube.net cloud-dahua.com cloud-dns.net cloud-frame.com @@ -23878,6 +23609,7 @@ cloudlishui.com cloudluohe.com cloudluoyang.com cloudlvs.com +cloudmaster.hk cloudmeishan.com cloudmes.io cloudminds.com @@ -23977,6 +23709,7 @@ clto.cc cltt.org club-pc.com clubcarev.com +clubhy.com clubweixin.samsung.com cluerich.com clwhk.com @@ -23992,7 +23725,6 @@ clzd.fun clzqm.com clzqxp.com clzt.com -clzxqc.com clzyqche.com cm-analysis.com cm-health.com @@ -24022,7 +23754,6 @@ cmbimg.com cmbuat.com cmbwinglungbank.com cmbwlb.com -cmbxgsx.com cmbyc.com cmca-view.com cmcc.in @@ -24107,6 +23838,7 @@ cmltzz.com cmmaap.com cmmchn.com cmmim.com +cmnetech.com cmnxt.com cmo2o.com cmoc.com @@ -24157,7 +23889,6 @@ cmykjx.net cmypsc.com cmys.cc cmyunerp.com -cmyx.xyz cmyynet.com cmzd.com cmzi.com @@ -24286,7 +24017,6 @@ cnad.com cnaf.com cnafc.org cnagcoin.com -cnaicpa.org cnaidc.com cnaifm.com cnaio.net @@ -24385,7 +24115,6 @@ cncheng.com cnchezhan.com cnchillers.com cnchospital.com -cnchowsangsang.com cnchu.com cncico.com cncjichuang.com @@ -24649,6 +24378,7 @@ cnidea.net cnielts.com cniiib.com cnimg.elex.com +cnimporter.com cninfo.net cninfos.com cninj.com @@ -24742,7 +24472,6 @@ cnkizw.com cnklog.com cnkly.com cnknowledge.com -cnkok.com cnkosun.com cnkpgs.com cnkuai.com @@ -24925,7 +24654,6 @@ cnqifeng88.com cnqjw.com cnqr.org cnquanjing.com -cnquyi.com cnqwt.com cnradio.com cnraksmart.com @@ -25076,7 +24804,6 @@ cnur.com cnuschool.org cnutcon.com cnuuu.com -cnv168.com cnvcs.com cnvf.com cnvfq.com @@ -25099,11 +24826,9 @@ cnweiming.com cnweisou.com cnwenshi.net cnwest.com -cnwgps.com cnwhc.com cnwindows.com cnwinenews.com -cnwnews.com cnwood-ipp.org cnwsgj.com cnwtn.com @@ -25113,7 +24838,6 @@ cnww9.com cnwxw.com cnwzd.com cnwzhd.com -cnx8.com cnxad.com cnxcjt.com cnxclm.com @@ -25231,7 +24955,6 @@ cocas.cc cocfan.com cochemist.com cochicon.com -cochina.org cocia.org coco413.com cocoachina.com @@ -25310,7 +25033,6 @@ codesocang.com codesoft.hk codesoftchina.com codess.cc -codetc.com codewd.com codeweblog.com codewoody.com @@ -25351,7 +25073,6 @@ coffee-hdl.com coffee-script.org coffee08.com coffeecdn.com -coffeehouse.wiki coffeejp.com coffeeofchina.com coffeeteaimagazine.com @@ -25363,6 +25084,7 @@ cogcpa.org cogdelschool.com cogertn2.com cogitosoft.com +cognizepower.com cogobuy.com cogolinks.com cogonline.com @@ -25387,7 +25109,6 @@ coinsky.com coinvs.com coinyue.com coirliner.com -cojrvjp.com cokll.com cokutau.com colahotpot.com @@ -25434,6 +25155,7 @@ combiosz.com combocn.com combofin.com combomen.com +combosm.com combpm.com combss.com comdeep.com @@ -25512,15 +25234,16 @@ conextweb.com confluxrpc.com confuciusinstitute.net conghua.com +congmiqq.com congrongfund.com congtoo.com congtoukaishi.com +congwuku.com congyicn.com congzao.com congzhi.com conhagroup.com conlerpharm.com -connorsaviation.com conodmedical.com conoha.vip conpak.com @@ -25531,7 +25254,6 @@ consmation.com constao.com constar-gd.com constgroup.com -consultingcy.com containerpi.com content4ads.com contentchina.com @@ -25541,6 +25263,7 @@ controlinai.com conuo.com convergemob.com convertlab.com +convoypayments.com cony-tech.com conyedit.com conyli.cc @@ -25648,7 +25371,6 @@ copcsc.org copl.com.hk copperalliance.asia copperhome.net -copy-manga.com copyedu.com copyfuture.com copyswisswatches.com @@ -25669,6 +25391,7 @@ corlercar888.com coros.com corp-email.com corp.cc +corpallies.com corpautohome.com corpease.net corpize.com @@ -25687,7 +25410,6 @@ coscoshipping.com coscoshippingenergy.com cosedm.com cosen.net -cosfund.com coshelper.com coshin.com coship.com @@ -25797,7 +25519,6 @@ cplotus.com cpm1000.com cpmiao.net cpmrc.org -cpmwuxi.com cpo.xyz cpo2o.com cpolar.com @@ -25834,12 +25555,12 @@ cptn.tv cptv2018.com cpu114.com cpu668.com +cpu7.com cpubbs.com cpudj.com cpuh2.com cpury.com cpuxn.com -cpvjob.com cpwlx.com cpwnews.com cpwzb.com @@ -25983,6 +25704,7 @@ cqem.net cqemme.com cqenergy.com cqest.com +cqetcvip.com cqeyeyy.com cqfdcxy.com cqfesco.com @@ -26015,7 +25737,6 @@ cqgrain.com cqgreat.com cqgsdb.com cqgtjt.com -cqguanghuai.com cqguangren.com cqguangrong.com cqguli.com @@ -26189,7 +25910,6 @@ cqloway.com cqlp.com cqlpa.com cqlummy.com -cqlxxz.com cqlxzjzx.com cqlyckj.com cqlydc.com @@ -26294,7 +26014,6 @@ cqsdzy.com cqsfqcpj.com cqsfybjy.com cqsgczjxx.org -cqsgzy.com cqshenou.com cqshic.com cqship.com @@ -26335,7 +26054,6 @@ cqsxhb.com cqsxjsj.com cqsxrj.com cqsxsl.com -cqsxwc.com cqsxzb.com cqsyjq.com cqsyjz.com @@ -26346,6 +26064,7 @@ cqsznyy.com cqsztech.com cqszyy.com cqszyyhyxh.com +cqszzs.com cqt-top.com cqtalent.com cqtally.co @@ -26462,7 +26181,6 @@ cqyfjs.com cqyfkgjt.com cqyfsk.com cqygfm.com -cqyhjy.com cqyhpx.com cqyhss.com cqyhyq.com @@ -26511,7 +26229,6 @@ cqzgzdh.com cqzhihaolaw.com cqzhongxingyuan.com cqzhqyjt.com -cqzhsw.com cqzikao.com cqzike.com cqzjt.com @@ -26521,7 +26238,6 @@ cqzls.com cqzoan.com cqzq6.com cqzql.com -cqzrchem.com cqzrsh.com cqzskj.com cqzuxia.com @@ -26784,7 +26500,6 @@ cscdf.org cscec.com cscec1b-bj.com cscec1b.net -cscec5b3.com cscec7b.com cscec81.com cscec8bud.com @@ -26797,7 +26512,6 @@ cscmgg.com csct-china.com csd568.com csdc.info -csdcfvgf4.fun csdczx.com csdeshang.com csdewater.com @@ -26807,7 +26521,6 @@ csdhxx.com csdiy.wiki csdn.com csdn.net -csdsa22.fun csdyjs.net csdyx.com cse-bidding.com @@ -26820,7 +26533,6 @@ cserveriip.com cserwen.com cseve.com csfcw.com -csfds000.fun csflgg.com csfounder.com csfreezer.com @@ -26878,6 +26590,7 @@ csiic.com csilp.com csimcc.com csisolar.com +csj-stcloud.com csjcs.com csjdeveloper.com csjgwy.com @@ -26983,7 +26696,7 @@ csslcloud.net cssmagic.net cssmoban.com cssqt.com -csst-sf.com +cssthxx.com csstoday.net cssuez.com cssywgy.com @@ -27024,7 +26737,6 @@ cswef.org csweigou.com csweiwei.com cswf888.com -cswfgg.com cswszy.com csxbank.com csxcdj.com @@ -27094,6 +26806,7 @@ ctc.lol ctc100.com ctcai.com ctcdn.com +ctce8.com ctcefive.com ctcloudmeeting.com ctcmo.com @@ -27105,6 +26818,7 @@ ctcsci.com ctcsz.com ctcwri.org ctcxzgs.com +ctdatacare.com ctdcn.com ctdisk.com ctdns.net @@ -27178,7 +26892,6 @@ ctoclub.com ctongonline.com ctoutiao.com ctpdd.com -ctqcw.com ctracer.net ctrcw.net ctrip-ttd.hk @@ -27196,7 +26909,6 @@ ctripgslb.net ctripins.com ctripqa.com ctripteam.com -ctrlqq.com ctrmi.com cts010.com ctsbw.com @@ -27279,7 +26991,6 @@ cuiruo.com cuirushi.com cuiuc.com cuiv.com -cuiweiju.cc cuixingreen.com cuixueshe.com cuiyongjian.com @@ -27350,7 +27061,6 @@ cvc898cvc.com cvchina.info cvchome.com cvcri.com -cvdfvdfv90.fun cvftc.net cvicse.com cvicseks.com @@ -27368,6 +27078,7 @@ cvtoutiao.com cvtvcn.com cwag.com cwbaike.com +cwbgp.space cwbpsi.com cwcec.com cwddd.com @@ -27498,10 +27209,8 @@ cxyxwl.com cxyyls.com cxyym.com cxz.com -cxz3d.com cxzg.com cxzntc.com -cxzudwk.com cxzuqiu.com cxzw.com cxzyjt.com @@ -27536,7 +27245,6 @@ cybertogether.net cyberway-china.net cybstar.com cybtc.com -cybtc.info cyc2018.xyz cychaiqian.com cyclemixcn.com @@ -27659,6 +27367,7 @@ cz-yk.com cz.cc cz121.com cz128.com +cz88.net cz89.com czb365.com czbanbantong.com @@ -27704,7 +27413,6 @@ czgcsb.com czgd.tv czgdgs.net czgdly.com -czgjhotel.com czgjj.com czgjj.net czgmjsj.com @@ -27859,7 +27567,6 @@ d2film.com d2kdi2ss.com d2scdn.com d2shost.com -d2tf0.icu d2ty.com d2ziran.com d3ch.com @@ -27872,7 +27579,6 @@ d3iz9md.com d3tt.com d3zone.com d4000.com -d44.cc d58.net d5h.net d5power.com @@ -27941,7 +27647,6 @@ dachaokn.com dachengbiochemical.com dachengge.com dachenglaw.com -dachengnet.com dachengsh.com dachengshuiwu.com dachengzi.net @@ -27951,7 +27656,6 @@ dachuizichan.com dachun.tv dachushicai.com dacidian.net -dacongmingdata.com dada114.net dada360.com dadaabc.com @@ -27980,7 +27684,6 @@ dadiwang.com dadiyimao.com dadongwu.com dadou.com -dadunet.com daduoduo.com daduofa.com dadushixiecheng.com @@ -28076,7 +27779,6 @@ daihing.com daijuchuang.net daijun.com daikandq.com -daikela.com daikuan.com daili321.com dailianmama.com @@ -28092,6 +27794,7 @@ dailygn.com dailyhongkong.net dailyqd.com daimafans.com +daimagongfang.com daimami.com daimawang.com daimay.com @@ -28204,7 +27907,6 @@ dalongyun.com daltonbio.com dalu.net daluma.com -dalunongmu.com daluo.com daluom.com daluwang.net @@ -28292,7 +27994,6 @@ dangongshijie.com dangpu.com dangtianle.com dangwan.com -dangyuncheng.com dangzhang.com dangzhi.com dangzhi.net @@ -28335,7 +28036,6 @@ danmaku.live danmaku.tv danmakupie.com danmei.la -danmei.win danmi.com danming-ic.com danmo.com @@ -28424,11 +28124,12 @@ daotour.com daotudashi.com daovay.com daovoice.io -daoweiyq.com daoxiangcun.com daoxila.com daoxila.net daoyoudao.com +daoyu.fun +daoyu.me daoyu8.com daoyumiao.com daozhao.com @@ -28490,6 +28191,7 @@ dashenquan.com dashentv.com dashet.com dashgame.com +dashi518.com dashigame.com dashikou.com dashitech.com @@ -28532,7 +28234,6 @@ datahubtrack.com datahuif.com dataie.com dataing.com -datalearner.com datang.com datang.net datangnxp.com @@ -28571,7 +28272,6 @@ datk.anythinktech.com datongjianshe.com datongtaxi.com datuc.com -datwy.com daugres.com dauteen.com dav01.com @@ -28765,7 +28465,6 @@ dbbqb.com dbc2000.net dbcdh.com dbcsq.com -dbcxz1.net dbdna.com dbgeek.org dbh123.net @@ -28775,7 +28474,6 @@ dbkan.com dbkuaizi.com dblgf.com dbljj.com -dbm-sh.com dbmailserver.com dbmaiyan7.com dbmall.com @@ -28866,7 +28564,6 @@ dd369.com dd373.com dd4.com dd666mir.com -dd8828.com ddadaal.me ddahr.net ddbiquge.cc @@ -28968,7 +28665,6 @@ ddyjapp.com ddyqh.com ddyun.com ddyun123.com -ddyvip.com ddyylczz.com ddyylczzs.com ddz.com @@ -29049,7 +28745,6 @@ deehon.com deemos.com deep-os.com deep56.com -deepbluenetwork.com deepc.cc deepcloudsdp.com deepcoin.red @@ -29108,14 +28803,12 @@ dehongtech.com dehsm.com dehua.net dehuaca.com -dehuichaoshi.com dehuigroup.com dehuisk.com dehuiyuan.com deifgs.com deikuo.com dejiart.com -dejinfu365.com dejiplaza.com dekeego.com dekekc.com @@ -29145,6 +28838,7 @@ delixi.com delixidrive.com deliyun.com dell-alw.com +dell-brand.com dell027.com dellecs.com dellemc-solution.com @@ -29210,6 +28904,7 @@ densesndysn.com denson168.com dentistshow.com denverokie.com +denza.cloud denzacloud.com deosen.com deosin.com @@ -29217,7 +28912,6 @@ dep-star.com depailed.com depamu.com dependdns.com -depengwuyou.com dephir.com deppon.com depsougnefta.com @@ -29262,7 +28956,6 @@ deskcar.com deskcity.com deskcity.org deskguanjia.com -deskier.com deskpool.com desktop-calculator.com desktopcal.com @@ -29310,7 +29003,6 @@ devui.design devzeng.com deweier.com deweisi.net -dewiqq.asia dewmobile.net dewu-inc.com dewu-inner.com @@ -29372,7 +29064,6 @@ df3n43m.com df81.com df9377.com df962388.com -dfan4.icu dfcfs.com dfcfw.com dfcms.net @@ -29380,7 +29071,6 @@ dfcx-bj.com dfdaily.com dfdd-toubiaole.com dfdinsin.com -dfdjy.net dfdtt.com dfedu.com dfev.net @@ -29413,7 +29103,6 @@ dfpost.com dfpz.net dfqcmy.com dfqy.com -dfqzah.xyz dfratings.com dfrcb.com dfrlyy.com @@ -29438,7 +29127,6 @@ dfwl.net dfwlg.com dfxq.com dfxqc.com -dfxs1.com dfxwdc.com dfxy.net dfxyw.com @@ -29476,6 +29164,7 @@ dgaiia.com dgbaineng.com dgbgw.com dgbia.com +dgbyxny.com dgcct.com dgchenghe.com dgcia.com @@ -29543,13 +29232,9 @@ dgqjj.com dgqzxx.net dgrbcj.com dgrcw.com -dgrgr34.fun -dgrongkuang.com dgrsa.org dgruizhi.com -dgsaichi.com dgsbtjx.com -dgsenmiao.com dgsfweb.com dgshifeng.com dgshunjin.com @@ -29724,6 +29409,7 @@ dianfanyingyu.com dianfengcms.com dianfuji.com diangan.org +diangeapp.com diangong8.com diangongbao.com diangongjiang.com @@ -29919,7 +29605,6 @@ didiyun.com didiyun.org didiyunapi.com diducoder.com -die4beats.com diebian.net dieclock.com diemoe.net @@ -29980,7 +29665,6 @@ digu365.com digua.com diguage.com diguazu.com -diguobbs.com dihaobedding.com dihaopipe.com dihaowa.com @@ -30032,7 +29716,6 @@ dingdiange.org dingdiann.com dingdiann.net dingdiansk.com -dingdianxs.com dingdianxs.la dingdianzw.com dingding.com @@ -30084,7 +29767,6 @@ dingqiaoks.com dingqibao.com dingqidong.com dingqingyun.com -dingrongjiashi.com dingrongxd.com dingrtc.com dingsheng.com @@ -30169,7 +29851,6 @@ ditian-tech.com ditianshanhe.com ditiee.com ditiefuli.com -ditiem.com ditiezu.com ditiezu.net ditu.live.com @@ -30253,7 +29934,6 @@ djbhjg.net djbx.com djc8888.com djcc.com -djccc.com djcp099.com djcscs.com djcx.cc @@ -30300,6 +29980,7 @@ djsxm.xyz djtpf.com djtpt.com djtt.com +djttw.com djtz.net dju8.com djunf.com @@ -30324,6 +30005,7 @@ dk-lexus.com dk517.com dk8s.com dkashop.com +dkcloudlive.com dkdangle.com dkdgroup.com dkdlsj.com @@ -30337,10 +30019,8 @@ dkjiaoyang.com dkjmy.com dkjmyq.com dklogs.net -dkmbn.com dkmol.net dkntgc.com -dkrsq.com dksgames.com dkskcloud.com dktad.com @@ -30485,7 +30165,6 @@ dmcbs.com dmcdn.com dmd968.com dmdaili.com -dmdksc.com dmeg88.com dmeiti.com dmeiti.net @@ -30526,9 +30205,9 @@ dmtemp.com dmtg.com dmtgy.com dmu-1.com +dmvvv.com dmxs.net dmyy.cc -dmyz.org dmzfa.com dmzgame.com dmzj.com @@ -30546,7 +30225,6 @@ dnatupu.com dnbbn.com dnbbs.com dnbiz.com -dnc21.com dncable.com dnd2.icu dndc.cloud @@ -30588,8 +30266,6 @@ dns12345.com dns200.net dns2008.com dns2023.com -dns2024.org -dns2028.com dns567.com dns6132.com dns666.com @@ -30615,11 +30291,9 @@ dnsfamily.com dnsfast.online dnsff.com dnsfox.net -dnsfwq.com dnsgtm.com dnsgulf.net dnsh6666.com -dnshot.net dnsidentity.com dnsinside.net dnsip.com @@ -30627,9 +30301,7 @@ dnsip.net dnsis.net dnsjia.com dnsjiasu001.com -dnslah.com dnslin.com -dnslv.com dnsmeasurement.com dnsmsn.com dnsng.net @@ -30642,7 +30314,6 @@ dnsoray.net dnsour.com dnspai.com dnspig.com -dnsplus.co dnspod.com dnspod.mobi dnspod.net @@ -30653,7 +30324,6 @@ dnsppdd.com dnsrw.com dnss.vip dnssec-poison.xyz -dnsserverhe.com dnssina.com dnstx88.cc dnsurl.net @@ -30750,8 +30420,6 @@ dodo.link dodo8.com dodobook.net dodoca.com -dodocha.com -dododv.com dodoeasy.com dodoedu.com dodoh5.com @@ -30802,7 +30470,6 @@ dolfindnsx.com dolfindnsx.net dolgma.com dolike.com -dolingou.com doll-leaves.com doll-zone.com dollphoin.site @@ -30817,7 +30484,6 @@ dom-3d.net domabio.com domaingz.com domaintescil.com -domengle.com domilight.com dominoh.com domob-inc.com @@ -30843,6 +30509,7 @@ dongbao120.com dongbaoshengwu.com dongbd.com dongbeishifandaxue.com +dongbing.wiki dongboauto.com dongbochem.com dongbosy.com @@ -30889,6 +30556,7 @@ dongfeng.net dongfengem.com dongfengtc.com dongfengtrucks.com +dongfou.com dongfund.com donggaoshiye.com dongge.com @@ -30898,7 +30566,6 @@ donghaidl.com donghaifunds.com donghaileasing.com donghailighter.com -donghao.org donghaotest.com donghetea.com donghongzx.com @@ -31029,14 +30696,12 @@ doorzo.app doorzo.net doosunggroup.com doov5g.com -doowinfintec.com dooya.com dopa.com dopic.net dopo-online.net dopoil.com dopool.com -dopsie.fun dora-family.com dorapp.com dorcen.com @@ -31067,8 +30732,8 @@ dotcpp.com dotdotnews.com doteck.com dotgate.com +dothantech.com doticloud.com -dotsage.com dotty-china.com dotwe.org dou.bz @@ -31142,12 +30807,12 @@ doumiip.com doumistatic.com doumob.com doumobsix.site -dounanhuahua.com douniwan.org doupai.cc doupay.com doupocangqiong1.com douqi.com +douqq.com doushen.com doushisan.com dousonvalve.com @@ -31194,6 +30859,7 @@ douyongtuan.com douyou100.com douyu.com douyu.tv +douyuex.com douyuscdn.com douyushepin.com douyutv.com @@ -31201,14 +30867,12 @@ douzaimai.com douzi.com douzihuyu.com douzijiasu.com -dov.moe dovechina.com dovepay.com dovesky.com dovov.com dowater.com dowebok.com -dowei.com doweidu.com dowell-health.com dowhere.com @@ -31268,7 +30932,6 @@ dpc-cn.net dpcafc.com dpcq1.net dpcyjt.com -dpddo.com dpdfsd.com dpdp.net dper.com @@ -31438,7 +31101,6 @@ drsmilehealth.com drsrp.com drstour.com drsxy.com -drtrs55.fun drtyf.com drugadmin.com drugfuture.com @@ -31458,21 +31120,14 @@ ds-lg.com ds028.com ds123456.com ds5f.com -dsad234.fun -dsads55.fun -dsaewew21.fun dsary.com dsb.ink dsbaike.com dsblog.net dscbs.com -dscds111.fun dscq.com -dsda21.fun dsdbxg.com dsdod.com -dsdsa33.fun -dsdsg44.fun dsdyf.com dseman.com dser.com @@ -31521,7 +31176,6 @@ dsqzls.com dsqzxyy.com dsrepark.com dss.hk -dssddf33.fun dsspinfo.com dsssp.com dsstudio.tech @@ -31541,7 +31195,6 @@ dswx.cc dswzxh.com dsx2020.com dsxdn.com -dsxgg.com dsxliuxue.com dsxys.pro dsyqt.com @@ -31578,7 +31231,6 @@ dtnews.net dtrcb.com dtrcw.net dts007.com -dtsmndu.com dtssyy.com dtstack.com dtstatic.com @@ -31592,7 +31244,6 @@ dtxmw.com dtxn.net dtxww.com dtxxjq.com -dtyhgj.com dtysky.moe dtyunxi.com dtyzg.com @@ -31618,6 +31269,7 @@ duanrong.com duanshipin.vip duanshu.com duantian.com +duanwdm.com duanwenxue.com duanwenxue8.com duanxb.com @@ -31630,7 +31282,6 @@ duanzaixian.vip duanzao001.com duanzikuaizui.com duanziya.com -duanziyuan.com duapp-preview.com duapp.com duapp.net @@ -31657,12 +31308,12 @@ dudongsheji.com duduaa.com dudubashi.com dududm.com +dudujb.com duduji.com dudujuzi.com dudutalk.com duduwo.com duelcn.com -dufeicizhuan.com dugoogle.com dugrqnn.xyz dugulingping.com @@ -31693,7 +31344,6 @@ duiyou360.com duiz.net duizhuang.com dujiabieshu.com -dujiaoshou.org dujin.org dujixiao.com dujiza.com @@ -31740,7 +31390,6 @@ dunsuan.com dunwang.com dunzhiwang.com duoao.com -duobei.com duobeiyun.net duobiyi.com duocaipaint.com @@ -31764,7 +31413,9 @@ duoduoipo.com duoduopan.com duoduoshipin.vip duoduoyin.com +duoduoyoucai.com duoduoyouli888.com +duoduoyuncai.com duoduozb.com duodutek.com duoduwang.com @@ -31877,7 +31528,6 @@ dup2.org dupingzu.com duplo-shandong.com dupola.net -duquge.org dur9.com dure365.com duread8.com @@ -31903,7 +31553,6 @@ dushu369.com dushu66.com dushubus.com dushudaren.com -dushuge.net dustess.com dustglobal.com dusulang.com @@ -31937,7 +31586,6 @@ duzhe.com duzhoumo.com dv0i.icu dv37.com -dv4ku.icu dv58.com dvagent.com dvbbs.net @@ -32005,12 +31653,14 @@ dxdlw.com dxe520.com dxecs.com dxf6.com +dxfbk.com dxfblog.com dxgg.co dxguanxian.org dxhuafu.net dxinzf.com dxjs.com +dxjt2013.com dxlfile.com dxm-cdn.com dxm-int.com @@ -32105,7 +31755,6 @@ dydytt.com dye-ol.com dyechina.com dyedu.net -dyee.org dyemp.com dyets-cn.com dyfc.net @@ -32162,7 +31811,6 @@ dyshf.com dyshortvideo.com dysj.com dysji.com -dysmmf.com dysswjt.com dythmy.com dytmgm.com @@ -32221,14 +31869,12 @@ dzbxk.com dzcch.com dzcj.tv dzcjw.com -dzcmd.com dzcmedu.com dzcnc.com dzcolor.com dzcrcgas.com dzdesign.cc dzdiy.com -dzdnb.com dzdu.com dzdvip.com dzdxs.net @@ -32238,15 +31884,12 @@ dzfang.com dzfc.com dzfjsm.com dzfwjd.com -dzfxh.com -dzgcxcl.com dzgg.com dzglsb.net dzgxq.com dzh.link dzhlive.com dzhope.com -dzhouse.com dzhqexpo.com dziuu.com dzjc.com @@ -32393,7 +32036,6 @@ e1299.com e12e.com e1617.com e1988.com -e1zin.icu e213155.com e21cn.com e22a.com @@ -32694,7 +32336,6 @@ ebls-group.com ebnew.com ebocert.com ebookmen.com -ebooksba.com ebopark.com eboxmaker.com ebpftravel.com @@ -32779,7 +32420,6 @@ echinacities.com echinagov.com echinatobacco.com echo-isoftstone.com -echo.cool echo188.com echoing.tech echoteen.com @@ -32797,7 +32437,6 @@ eciticcfc.com ecjobhome.com ecjson.com eckwai.com -eclipium.xyz ecloud-gdu.com ecloud.hk ecmc-nj.com @@ -32814,7 +32453,6 @@ ecocn.org ecodreamers.com ecoh-china.com ecoland-plan.com -ecolesenet.com ecoliving168.com ecolovo.com ecom-lightapp.com @@ -32904,6 +32542,7 @@ eddycjy.com ede35.com ededian.com edefang.net +edengjiang.com edesson.com edfni.xyz edge-byted.com @@ -32936,7 +32575,6 @@ ediuschina.com edk24.com edlcaster.com edmcn.net -edmontonservice.com edmseller.com edns.com edo-bijiben.com @@ -33038,12 +32676,10 @@ edwiv.com edxmy.cc edzx.com ee-nav.com -ee-skin.com ee123.net ee1234.com ee68.com ee77777.com -ee8828.com ee99.net eeban.com eebbk.com @@ -33085,14 +32721,12 @@ eeioe.com eeju.com eekgame.com eelly.com -eeloves.com eema.info eenzo.com eeook.com eeparking.com eepw.com eeqiu.com -eeqweqw.fun eeryt111.fun eeskill.com eeso.net @@ -33103,6 +32737,7 @@ eetop.com eetopic.com eetrend.com eetrust.com +eeuetqbv.shop eevision.com eeworld.com eeworm.com @@ -33126,7 +32761,6 @@ efashionchina.com efashioncloud.com efchina.org efe.cc -efengji.org efengqing.com efesco.com eff-soft.com @@ -33168,7 +32802,6 @@ egainnews.com egbt.net egcmedia.com egeel.com -egesdashb8.fun egfb2221.com egg0.icu eggbnk.com @@ -33215,7 +32848,6 @@ ehaohai.com ehaoyao.com ehaoyao.us ehclglobal.com -ehcoo.com ehealthcareforum.com ehecd.com ehedco.com @@ -33290,9 +32922,7 @@ einsteintiles.com eintone.com eiot.com eiphrut.com -eismowe.com eisoo.com -ej-travel.com ejamad.com ejc56.com ejcms.com @@ -33326,6 +32956,7 @@ ejoy365hk.com ejrfood.com ejsoon.win ejtieyi.com +ejtsyc.com eju.com ejudata.com ejuhome.com @@ -33432,7 +33063,6 @@ ellechina.com ellemen.com elleschool.com elliotxing.com -ellll.com elmerlxy.com elmerzhang.com eloancn.com @@ -33463,6 +33093,7 @@ elvgufen.com elvshi.com elvxing.net elxk.com +elysia.beauty em86.net emai.com email.fund @@ -33529,6 +33160,7 @@ emoji6.com emojimobile.com emoriko.com emotibot.com +emotofine.com emots.cc emqx.cloud emqx.com @@ -33565,6 +33197,7 @@ en8848.com en998.com enacdn.biz enacdn.info +enacdn.net enaiter.com ename.com ename.net @@ -33779,7 +33412,6 @@ epsea.com epshw.com epsonconnect.com epstsoft.com -epsyc.com eptchina.com eptsz.com epub360.com @@ -33814,9 +33446,7 @@ eqxiu.mobi eqxiul.com eqxiuzhan.com eqyn.com -eqz.cc er07.com -er1h4.icu eraclean.com eraedu.com eral.com @@ -33829,7 +33459,6 @@ erbadu.com erbingimg.com ercc.cc ercfh.com -ercoabv.com erda.cloud erdaicms.com erdangame.xyz @@ -33893,10 +33522,8 @@ ersjk.com ersoso.com ersuo.com ert.icu -ert295.com ert7.com ertmineq.com -ertongai.com ertongkongjian.com ertongtuku.com ertoutiao.com @@ -33951,7 +33578,6 @@ eshufa.com eshuizong.com eshukan.com eshzp.com -esie-expo.com esilk.net esinidc.com esipark.com @@ -34035,7 +33661,6 @@ et-fine.com et001.com et363.com et59.com -etagrfid.com etagri.com etang.com etao.com @@ -34059,6 +33684,7 @@ etest8.com eteste.com etf.group etf88.com +etfcjz.com etfiber.net etg56.com ethainan.com @@ -34173,6 +33799,7 @@ europewatch.com.hk eursell.com eusercenter.com eushophq.com +eusoftbank.com euwan.com euzw.net ev123.com @@ -34266,7 +33893,6 @@ evyy.net evzhidao.com evzs.com ew-wirestripping.com -ew480.com ew80.com ew80.net ew80yun.com @@ -34279,7 +33905,6 @@ ewaterchina.com ewatt.com ewceo.com ewdcloud.com -ewdtx.com ewebeditor.net ewebsoft.com ewecha.com @@ -34305,8 +33930,6 @@ eworksglobal.com eworldship.com ewpeinfo.com ewqcxz.com -ewqeq23.fun -ewqws55.fun ewsaas.com ewstudy.com ewt360.com @@ -34429,7 +34052,6 @@ exuanshi.com exuekt.com exueshi.com exuezhe.com -exxstar.com exyws.org ey100.com ey3g.com @@ -34443,6 +34065,7 @@ eyar.com eyasglobal.com eyasgloble.com eyatv.com +eybond.com eybook.com eycfhb.com eycms.net @@ -34536,7 +34159,6 @@ ezhun.com ezhupei.com ezindie.com eziot.com -ezitong.com ezjhw.com ezlippi.com ezliushao.com @@ -34599,7 +34221,6 @@ f5cs.com f5gh.com f5sd.com f5yx.com -f5zv2.icu f64532081.com f6yc.com f7777.net @@ -34621,7 +34242,6 @@ fabiaoqing.com fabigbig.com fabpo.com fabu114.com -fabulousvmd.com faburuanwen.com fabuzhushou.com facaishiyi.com @@ -34946,7 +34566,6 @@ fantablade.com fantaiai.com fantaicdn.net fantaitech.com -fantalovelife.club fantanggame.com fantasticbin.com fantatech.com @@ -34997,7 +34616,6 @@ fanyu.work fanyuip.com fanzehua.com fanzhanqun.com -fanzhewenhua.xyz fanzhidu.com fanzhiyang.com fapharm.com @@ -35028,15 +34646,12 @@ farsee2.com farsightdev.com fas-bee.com fasensor.com -fasggjt.com fashaoyou.net -fasheng.org fashengba.com fashilawfirm.com fashionszshow.com fashiontrenddigest.com fashuounion.com -fasidi.com fasionchan.com fast-eyes.com fast-heat-cartridge-heaters.com @@ -35082,7 +34697,6 @@ fatiao.pro fatieku.com fatier.com fatoan.com -fattireelectricbikefactory.com fatu.cc fatvg.com faussefrance.com @@ -35186,10 +34800,8 @@ fcgmaple.com fcgsaps.com fcgsnews.com fcgstzjt.com -fcgsxl.com fcguoan.com fcgxt.com -fcgxywl.com fcgzjchy.com fcgzph.com fcgzrkq.com @@ -35319,7 +34931,6 @@ feeye.com feeyeah.com feeyo.com feeyun.com -fefwe334.fun fegine.com feheadline.com fehelper.com @@ -35495,6 +35106,7 @@ feiyunxiazai.com feiyuteam.com feizan.com feizhaojun.com +feizhiyi.com feizhu.com feizhuke.com feizhupan.com @@ -35594,7 +35206,6 @@ fengli.com fengli.su fengliankeji.com fenglichem.com -fengligroup.com fenglingroup.com fenglinjiu.com fenglinlab.com @@ -35619,7 +35230,6 @@ fengshangweekly.com fengshankeji.com fengshi8888.com fengshigroup.com -fengshuia.com fengsung.com fengtai.tv fengtalk.com @@ -35632,7 +35242,6 @@ fengwanyx.com fengwatch.com fengwenyi.com fengwo.com -fengwoba.com fengwohao.com fengwusp.com fengxb.com @@ -35649,7 +35258,6 @@ fengyeholding.com fengyitong.name fengyixin.com fengyuangufen.com -fengyubf.com fengyuncad.com fengyuncx.com fengyunlu.com @@ -35727,11 +35335,9 @@ fevermi.com fevte.com feydj.com feyer-tc.com -ff112222.com ff14.cloud ff54.ink ff63.com -ff8828.com ffalcon.com ffan.com ffasp.com @@ -35742,9 +35348,9 @@ ffdbj.com ffeeii.com ffepower.com fffont.com +ffhome.com ffis.me ffj.cc -ffjjsj.com ffl.icu ffls-edu.com ffmobi.com @@ -35930,7 +35536,6 @@ finzjr.com fiocco-group.com fir.vip firadio.net -fire-api.com fire233.com fire2333.com fire24h.com @@ -36035,7 +35640,6 @@ fjc001.com fjce.com fjcee.com fjcgxc.com -fjchmetal.com fjcid.com fjcoop.com fjcqjy.com @@ -36125,7 +35729,6 @@ fjnet.com fjnhjt.com fjotic.com fjpca.com -fjpch.com fjpcz.com fjpicc.com fjpta.com @@ -36138,7 +35741,6 @@ fjq.icu fjqfkg.com fjqionghai.com fjqjsw.com -fjrcjc.com fjrclh.com fjrcw.com fjrmyy.com @@ -36229,6 +35831,7 @@ fklngy.com fktool.com fkw.com fkw100.com +fkwapi.com fkwatchtw.com fkyuer.com fkyun.com @@ -36250,6 +35853,7 @@ flan1688.com flaredup.com flash8.net flash8f.com +flashcat.cloud flashgame163.com flashgene.com flashkrypton.com @@ -36283,14 +35887,12 @@ flleasing.com flm-tj.com flmgr.net flml.cc -flnet.com floatingislandapps.com floatmaze.com flockypet.com flomoapp.com flooc.com floorb2b.com -floorvacuumcleaner.com florentiavillage.com flourish-fs.com flowchemchina.com @@ -36387,12 +35989,12 @@ fm960.net fmapp.com fmbimg.com fmc123.com -fmcf.cc fmcoprc.gov.mo fmd360.com fmetro.net fmi33.com fminers.com +fmjmm.com fmkefu.com fmkpharm.com fmmob.com @@ -36476,6 +36078,7 @@ fofcn.tech fofen.com fofhc.com fofstudio.net +fofuai.com fogcloud.io foguanghui.org fohohr.com @@ -36787,7 +36390,6 @@ freeuid.com freevm.com freewhale.net freeydch.com -freeymw.com freeyun.com freezhw.com freezl.net @@ -36800,9 +36402,6 @@ freshhema.com freshippo.com freshippomarket.com freshnewsnet.com -frfve33.fun -frgf99.fun -frgre33.fun frhelper.com friendeye.com friends-exchange.com @@ -36887,6 +36486,7 @@ frp-say.com frp-sea.com frp-shy.com frp-six.com +frp-ski.com frpapp.com frt.ltd frtgraphite.com @@ -36923,11 +36523,9 @@ fscm.tech fscmjt.com fscsps.com fsdaton.com -fsdf45.fun fsdxzhpt.com fsecity.com fseig.com -fsemouse.com fseport.com fsesa.com fsfsfz.com @@ -36987,7 +36585,6 @@ fspits.com fspride.com fspt.net fspublic.com -fsqiangfengzy.com fsruibin.com fssdbjyy.com fssdlhyxh.com @@ -37020,6 +36617,7 @@ fsyhlz.com fsylr.com fsyq.net fsysyy.com +fsytss.com fsyule.net fsyuncai.com fsyxg.com @@ -37131,7 +36729,6 @@ fuhai360.com fuhaikj.com fuhancapital.com fuhanziben.com -fuhaodaquan.org fuhaoku.com fuhefu.com fuheng.org @@ -37155,12 +36752,10 @@ fujinguo.com fujinjiazheng.com fujinotrade.com fujutec.com -fuk888.com fuka.cc fukangjixie.com fukangqipai.com fukangyuanyanglao.com -fuke163.com fukexie.com fulanka.com fulantv.com @@ -37210,6 +36805,7 @@ funcrea.com functionads.com functionaltextilesshanghai.com functioncool.com +functiongraph.run fund001.com fundebug.com fundebug.net @@ -37389,7 +36985,6 @@ fwqlt.com fwqtg.net fwqur86.com fws-china.com -fwsfwef2.fun fwt0.com fwtoys.com fwvv.net @@ -37558,6 +37153,7 @@ fyxxcl.com fyxxwb.com fyxz.com fyydnz.cc +fyynlx.com fyyy.com fyzku.com fyzls.com @@ -37633,6 +37229,7 @@ fzthinking.com fzwater.com fzwcn.com fzwhzn.com +fzwqq.com fzwtqx.com fzwtxx.com fzwxxcx.com @@ -37659,7 +37256,6 @@ g-tar.com g-var.com g052m43e2ghn.com g1080.com -g11edashb1.fun g12345.com g12e.com g12e.org @@ -37688,10 +37284,8 @@ g5h4.com g5kj.com g66667777.com g6a7qkh.xyz -g6tgashb.fun g77775555.com g77776666.com -g7ghdash2.fun g80mx.com g88885555.com g88886666.com @@ -37728,7 +37322,6 @@ gagaga.icu gagaga.tech gagahi.com gagaslklxjasdkafj.com -gahwilertaxservice.com gai.net gaiabiohx.com gaiamount.com @@ -37854,7 +37447,6 @@ gameres.com gamerhome.com gamerhome.net gamermake.com -gamerplay67.space gamersky.com gamersky.net gamerstorm.com @@ -37873,7 +37465,6 @@ gamewifi.net gamexdd.com gamexhb.com gamexun.com -gameyc.com gameyiming.com gameyisi.com gameyj.com @@ -37998,6 +37589,7 @@ gaohaipeng.com gaohangip.com gaoheconsult.com gaohr.com +gaohuasec.com gaoimg.com gaojer.com gaoji.ren @@ -38005,6 +37597,7 @@ gaojie.com gaojihealth.com gaojima.com gaojipro.com +gaojitui.com gaokao.com gaokao365.com gaokao789.com @@ -38119,7 +37712,6 @@ gastronomy.gov.mo gaszx.com gate-dhgames.com gateface.com -gatewang.com gateweb3.cc gateweb3.io gather-dns.com @@ -38144,11 +37736,9 @@ gbasig.com gbdex.com gbdz.net gbeca.org -gbfedashb4.fun gbffchina.com gbgba.com gbgcn.com -gbgedashb8.fun gbhome.com gbiac.net gbicdn.com @@ -38156,7 +37746,6 @@ gbicom.com gbictc.com gblhgk.com gbma.org -gbndash2.fun gbofd.com gbox.pub gbox.run @@ -38177,7 +37766,6 @@ gc39.com gc73.com gc91.com gcable.tv -gcademy.net gcbtgh26.xyz gccdn.net gccgz.com @@ -38185,7 +37773,6 @@ gcchina.com gccmgw.com gccrcw.com gcdcrs.com -gcddashb3.fun gcgd.net gcgzjt.com gchao.com @@ -38224,14 +37811,10 @@ gcpok.com gcpunion.org gcs66.com gcscmp.com -gcsmjo.xyz gcstorage.com -gct-online.com gctianshanxh.com gctong.com gctzsh.com -gcvcdashb2.fun -gcvgedashb3.fun gcwdp.com gcwduoduo.com gcwith.com @@ -38724,7 +38307,6 @@ gdxueyin.com gdxxb.com gdxy.vip gdxych.com -gdxycy.com gdybkjjt.com gdyd.com gdydgj.com @@ -38795,7 +38377,6 @@ gdzzz.com ge-garden.net ge-stralen.com ge100.com -ge3shbdf1.fun geakr.com geality.com geapu.com @@ -38812,20 +38393,15 @@ gebchina.com gebertech.com gebilaoshi.com gebinlong.com -gebinwang666.com gebiqu.com gec123.com geci123.com gecimi.com gecpc.com -gedafdshb7.fun -gedashb112.fun -geddsashb3.fun gedi2099.com gedou8.com gedoumi.com gedu.org -gedxssashb8.fun geeboo.com geebook.com geedai.com @@ -38894,7 +38470,6 @@ geespace.com geetest.com geevisit.com geewaza.com -geewdashb3.fun geexek.com geezn.com gegame.site @@ -38921,11 +38496,9 @@ geiniwan.com geisnic.com geizan.cc gelaha.com -gelgcn.com gelicang.net gelics.com geline.net -gelintest.com gelinya.com geliqi.net gellec.com @@ -39032,8 +38605,6 @@ gephb.com gepresearch.com gepubbs.com gepush.com -geqshb22.fun -gequdaquan.net geren-jianli.com gerenjianli.com gerenshuoming.com @@ -39046,18 +38617,14 @@ gerzz.com gesanghua.org gescosteel.com gescs.com -gesdxashb1.fun gesedna.com gesep.com -gesfdashb5.fun geshitong.net geshui.com geshui100.com geshui99.com geshuiba.com -gessdashb6.fun gesuo.com -gesvfvfhhb6.fun geswl.com get-shell.com get.vip @@ -39094,7 +38661,6 @@ gewara.com gewei-wh.com gewei.com geweng.com -gewqashbwq.fun gewu.vc gewuer.com gewuzhixiang.com @@ -39139,7 +38705,6 @@ gfdns.net gfdsa.net gfedu.com gfedu.net -gffedashb6.fun gffirm.com gffwq.com gfglb.com @@ -39167,12 +38732,8 @@ gftuan.com gfun.me gfund.com gfvip00ae.com -gfvip01am.com -gfvip02aj.com gfvip05aj.com gfvip06ae.com -gfvip06as.com -gfvip07am.com gfvip07ao.com gfvip08ah.com gfxaa.com @@ -39188,7 +38749,6 @@ gg-led.com gg122.net gg1994.com gg1z.com -gg8828.com ggac.net ggaiyan.com ggas.com @@ -39206,7 +38766,6 @@ ggecgc.com ggemo.com ggeye.com ggfcyy.com -ggfdgd88.fun ggfsfy.com ggfswy.com ggg42.com @@ -39327,9 +38886,7 @@ ghhyjc.com ghibliwiki.org ghitcsh.com ghitest.com -ghiuge55.fun ghjbh123.com -ghjedashb6.fun ghlawyer.net ghlearning.com ghlshb.com @@ -39371,7 +38928,6 @@ ghsmc.com ghsmpwalmart.com ghsuliao.com ght-china.com -ght.me ght120.com ghtech.com ghtianshancn.com @@ -39399,7 +38955,6 @@ giantet.com giantgd.com giantkone.com giao.me -giaog-xiaobailgaong.com gibcp.com gicasa.com giccoo.com @@ -39488,7 +39043,6 @@ gitinn.com gitiu.com gitlib.com gitmirror.com -gitnavi.com gitnoteapp.com gitom.com gitpp.com @@ -39502,7 +39056,6 @@ giyu8.com gizaworks.com gizlnr.com gizwits.com -gj555.net gj62.com gjbaek.ren gjcars.com @@ -39525,11 +39078,9 @@ gjjiaxiao.com gjjnhb.com gjjsbz.com gjkdwl.com -gjkkdashb4.fun gjlease.com gjmbwxpt.com gjmbwxzx.com -gjmedashb0.fun gjmrk.com gjnlyd.com gjpdh.com @@ -39538,6 +39089,7 @@ gjsc.info gjsj.com gjsun.com gjtmu.com +gjtool.com gjtt.net gjw.com gjw123.com @@ -39630,7 +39182,6 @@ glaproject.com glasercom.com glass-ciac.com glassbottleproducer.com -glassclassifieds.asia glasseasy.com glassmicro.com glavo.site @@ -39657,7 +39208,6 @@ glclcsy.com glcszy.com gldaewoo.com gldjc.com -gldxjc.com gleasy.com glecan.com glelec.com @@ -39686,7 +39236,6 @@ glgst.com glgtzc.com glgyzn.com glgzlq.com -glhbyyzc.com glhcjs.com glhckj.com glhclv-kool.com @@ -39780,7 +39329,6 @@ globalbuy.cc globalchangan.com globalcho.com globalcompressor.com -globaldangdang.hk globaletrust.com globalharborec.com globalhardwares.com @@ -39831,6 +39379,7 @@ glquanji.com glrcjob.com glrcw.com glreading.com +glredu.com glriverside.com glrmyy.com glruixin.com @@ -39851,7 +39400,6 @@ glsyjd.com glsyjgs.com glsytzjt.com glt365.com -gltif.com gltop.com gltsg.com glttjz.com @@ -39873,7 +39421,6 @@ glxhzs.com glxiaoyaohu.com glxinhu.com glxkbz.com -glxlawyer.com glxsyx.vip glxwdb.com glxxjx.com @@ -39931,9 +39478,9 @@ gmaxbiopharm.com gmbbs.net gmbuluo.com gmcc.net -gmcchina.net gmcinnov.com gmcmonline.com +gmdeng.com gmdt9b.com gmdun.com gmecn.com @@ -39984,6 +39531,7 @@ gmugmu.com gmw.com gmwiki.com gmxmym.ren +gmya.net gmyihua.com gmylj.com gmz88.com @@ -40117,6 +39665,7 @@ gohoedu.com gohomesafe.org gohomesh.com gohong.com +goi08160kh.com going-link.com gojiaju.com gojira.net @@ -40160,6 +39709,7 @@ goldenken.com goldenladies.com goldenname.com goldenseaair.com +goldentec.com goldenthroat.com goldentom.com goldfoil.com @@ -40249,7 +39799,6 @@ gonglf.com gonglve.net gongmo1688.com gongmutang.com -gongniugu.com gongnou.com gongpin.net gongpingjia.com @@ -40367,7 +39916,6 @@ goodyoungtea.com goodzuji.com goodzuo.com goofish.com -googcc.net google-hub.com google-play.mobi google444.com @@ -40377,6 +39925,7 @@ googleplus.party googlevip8.com googlevoice.org googleyixia.com +googoc.com googol-power.com googolpark.com googvv.com @@ -40554,7 +40103,6 @@ gpmro.com gpnewtech.com gpowersoft.com gppapp.com -gppdt.com gpqnrc.com gps009.net gps123.org @@ -40568,6 +40116,7 @@ gpsoo.net gpspw.net gpsrcw.com gpsspg.com +gpstool.com gpsuu.com gpszlsc.com gpticket.org @@ -40600,7 +40149,6 @@ gqsoso.com gqsyk.com gqsym.com gqt168.com -gqwwshbdd1.fun gqxtq.com gr-hospital.com gr3xuaov74khb.com @@ -40649,7 +40197,6 @@ grass98.com grassmoon.net graueneko.xyz gravity-engine.com -gray-ice.com grcbank.com grchina.com grcwzx.com @@ -40689,7 +40236,6 @@ green-sh.com green12306.com greencharm.com greenchengjian.com -greencompute.org greendh.com greenhua.com greenism.net @@ -40715,7 +40261,6 @@ greplay.com grescw.com gretaith.com gretf.com -grewash1b.fun greyli.com greywolfcdn.net greywolffast.com @@ -40735,7 +40280,6 @@ grid2048.com gridsum.com gridsumdissector.com gridy.com -grihaith.com grikin.com grinm.com grirem.com @@ -40808,12 +40352,12 @@ gscblog.com gscdn.pub gscidc.net gscm.tv -gsdedash9b.fun gsdk.tv gsdpw.com gsdswz.com gsdtfx.com gsdyjsgs.com +gseen.com gsensebot.com gsfilter.net gsflcp.com @@ -40841,7 +40385,6 @@ gsjqtv.com gsjt-cn.com gsjt56.com gsjtky.com -gsjy.xyz gskaiwei.com gskfzxyy.com gskjpt.com @@ -40852,8 +40395,6 @@ gslbdns.com gslbdns.net gslmw.net gslnjyjt.com -gslsj.com -gsmgw.com gsmpers.com gsmuban.com gsmxjy.com @@ -40927,7 +40468,6 @@ gszyi.com gszytcm.com gszyy.com gt-generator.com -gt-key.com gt-oil.com gt-semi.com gt47xc.com @@ -40951,7 +40491,6 @@ gtcfzp.com gtcim.com gtd-china.com gtder.club -gtdf33.fun gtdgc.com gtdlife.com gtdreamlife.com @@ -41185,9 +40724,7 @@ guangximinhang.com guangxinengyuan.com guangxipubeihuaheng.com guangxiqimei.com -guangxiqingrun.com guangxircw.com -guangxisanhe.com guangxishangfu.com guangxishuizhiyangzhigongsi.com guangxisichujiadao.com @@ -41251,6 +40788,7 @@ guanshangyu.cc guanshenggz.com guansong.com guansre.com +guantao.com guanting.com guanvip8.com guanwang.cc @@ -41385,7 +40923,6 @@ guimengning.com guimengshangeng.com guinsoft.com guipeibao.com -guipeng168.com guipin.com guiqingkeji.com guiququ.com @@ -41418,7 +40955,6 @@ guizhenghe.com guizhenwei.com guizhougames.com guizhougas.com -guizhounaishili.com guizhoushengyang.com guizhutanglao.com guj6.com @@ -41427,7 +40963,6 @@ gujing.com gujinshici.com gujinyue.com gujiushu.com -gujix.com gujiyx.com gukaifu.com gukaihu.com @@ -41456,7 +40991,6 @@ gumpmall.com gundambattle.com gunshitech.com gunsuo.com -gunxueqiu.com guo-kai.com guo68.com guo7.com @@ -41605,7 +41139,6 @@ guoxintek.com guoxue.com guoxue123.com guoxuedashi.com -guoxuedashi.net guoxuemeng.com guoxuemi.com guoxuwang.com @@ -41619,6 +41152,7 @@ guoyitang.org guoyu.com guoyu.link guoyuanliang.com +guoyue.games guoyuegroup.com guoyuejituan.com guoyunjc.com @@ -41631,7 +41165,6 @@ guozhangroup.com guozhanjiaoyu.com guozhen.net guozhenyi.com -guozhihua.net guozhijun.com guozhivip.com guozhoutrade.com @@ -41681,7 +41214,6 @@ gutlighting.com gutou.com gutousoft.com gutx.org -guuoo.com guwan.com guwantj.com guweimin.com @@ -41711,7 +41243,6 @@ gvnpjzn.com gvoiceplat.com gvt1-cn.com gvt2-cn.com -gvvedashb6.fun gvzen.com gw-dv.vip gw-ec.com @@ -41782,7 +41313,6 @@ gx-lc.com gx-newmedia.com gx-royalpartners.com gx-stbd.com -gx-vlink.com gx-wl.com gx-xc.com gx-xjyx.com @@ -41893,7 +41423,6 @@ gxbtsc.com gxbtsy.com gxbtxc.com gxbygs.com -gxbyjx.com gxbyjxc.com gxbykj.com gxbyrcb.com @@ -41923,7 +41452,6 @@ gxcexxzx.com gxcfjx.com gxcgmf.com gxcgzh.com -gxch-tech.com gxch168.com gxchanghe.com gxchangjiangpn-jinnuo.com @@ -42009,7 +41537,6 @@ gxdansi.com gxdanzo.com gxdaos.com gxdaosheng.com -gxdashun.com gxdbdl.com gxdbxrmyy.com gxdco.net @@ -42036,7 +41563,6 @@ gxdltech.com gxdlxy.com gxdlzl.com gxdmds.com -gxdmjxc.com gxdmsq.com gxdmtrade.com gxdmw.com @@ -42108,7 +41634,6 @@ gxfcq.com gxfcw.com gxfengjie.com gxfenglei.com -gxfengsu.com gxfengxiang.com gxfengxingjq.com gxffjt.com @@ -42184,7 +41709,6 @@ gxgeek.com gxgentle.com gxgf.net gxgfsh.com -gxgfsj.com gxggcmc.com gxggdq.com gxggfhsmy.com @@ -42232,7 +41756,6 @@ gxgoodfirst.com gxgov.net gxgp123.com gxgpo.com -gxgpxny.com gxgpzhtc.com gxgqdz.com gxgqsn.com @@ -42267,7 +41790,6 @@ gxguiping.com gxguiren.com gxguirun.com gxguite.com -gxguixiaoshu.com gxguixing.com gxguiyang.com gxguizhiyuan.com @@ -42289,7 +41811,6 @@ gxgyrq.com gxgyyclc.com gxgyyy.com gxgzlm.com -gxgzrl.com gxgztyy.com gxgzy.com gxgzzn.com @@ -42345,6 +41866,7 @@ gxhhgs.com gxhhhb.com gxhhig.com gxhhjk.com +gxhhjt.net gxhhmed.com gxhhzsjt.com gxhigreen.com @@ -42507,7 +42029,6 @@ gxjghy.com gxjgjjc.com gxjgjstzjt.com gxjgjt.com -gxjgxh.com gxjgyj.com gxjgyjgs.com gxjgzcb.com @@ -42596,7 +42117,6 @@ gxjqyy.com gxjrxy.com gxjrzl.com gxjs.net -gxjs99.com gxjsd56.com gxjsfs.com gxjshu.com @@ -42627,7 +42147,6 @@ gxjunan.com gxjunding.com gxjunhe.com gxjunliang.com -gxjuntai.com gxjwgd.com gxjxcloud.com gxjxsy.com @@ -42868,13 +42387,11 @@ gxmiao.com gxmiaoshu.com gxminglian.com gxmingshi.com -gxmingyun.com gxmj.org gxmjyy.com gxmjzs.com gxmk.net gxmlba.com -gxmld.com gxmlyjy.com gxmmhgs.com gxmmkt.com @@ -43034,7 +42551,6 @@ gxqiyuan.com gxqkcm.com gxqljt.com gxqllc.com -gxqlled.com gxqlt.com gxqmk.com gxqnjc.com @@ -43168,7 +42684,6 @@ gxshjz.com gxshny.com gxshoufeng.com gxshouji.com -gxshrf.com gxshtf.com gxshua.com gxshuairun.com @@ -43522,7 +43037,6 @@ gxyete.com gxyfck.com gxyfkj.com gxyfm.com -gxyfqxcx.com gxyfxc.com gxyglw.com gxygys.com @@ -43579,7 +43093,6 @@ gxyongzhitai.com gxyos.com gxyoupinzhi.com gxypdc.com -gxypjj.com gxypjy.com gxypnh.com gxyqjc.com @@ -43797,7 +43310,6 @@ gyhht.com gyhimalayanul.com gyhj.org gyhm.cc -gyhsz120.com gyidc.net gyii.com gyip.net @@ -43901,6 +43413,7 @@ gz-notary.com gz-shanguang.com gz-spi.com gz-tencentclb.cloud +gz-tencentclb.com gz-tencentclb.work gz-wx.com gz-xinghe.com @@ -44008,7 +43521,6 @@ gzdqyy.com gzdryy.com gzdsw.com gzdtc.com -gzdtcy168.com gzdtg.com gzduguo.com gzdysx.com @@ -44171,7 +43683,6 @@ gzkcsjw.com gzking.com gzkint.com gzkmbg.com -gzkmring.com gzkofa.com gzktm.com gzkunmao.com @@ -44189,7 +43700,6 @@ gzlight.com gzliyuanhb.com gzljsl.com gzlnholdings.com -gzlpml.com gzlsgy.com gzlt.net gzlujiao.com @@ -44255,12 +43765,10 @@ gzpotent.com gzppa.org gzprg.com gzprobig.com -gzpts.com gzpy120.net gzpydlc.com gzpyxz.net gzqbd.com -gzqdedu.com gzqgdg.com gzqiche.com gzqixun-tech.com @@ -44527,7 +44035,6 @@ h128.com h13.mobi h14z.com h1jx.com -h1v3fa.com h2-bank.com h2fc.net h2gl.com @@ -44661,9 +44168,7 @@ haha360.com haha365.com haha9911.com hahack.com -hahade.com hahaertong.com -hahaha365.com hahait.com hahajing.com hahasou.com @@ -44756,6 +44261,7 @@ haijiaoshi.com haijiasu.com haijizq.com haijob.com +haijt.com haijudoc.com haijunda.com haikegroup.com @@ -44919,7 +44425,6 @@ haiwu.com haixiachina.com haixiahuagong.com haixiangkuajing.com -haixianlai.net haixin.com haixin5.com haixindichan.com @@ -44939,7 +44444,6 @@ haixuemeili.com haixuyun.com haiyang-group.com haiyang.net -haiyaolaw.com haiyi701.com haiyiai.tech haiyingmt.com @@ -45026,7 +44530,6 @@ handsfree.work handu.com handuyishe.com handyfriendship.com -hanenyunxiao.com hanergy.com hanex.cc hanfakg.com @@ -45082,7 +44585,6 @@ hangzhiqiao.com hangzhouboiler.com hangzhoueda.com hangzhouexpo.com -hangzhoufcw.com hangzhoufujikura.com hangzhoujizhang.com hangzhoujx.com @@ -45105,7 +44607,6 @@ hanhongchina.com hanhoo.com hanhua.com hanhuatin.com -hanhuilvshi.com hanihanrf.com hanjea.com hanjianbing.org @@ -45195,8 +44696,6 @@ hanwei1234.com hanweimetal.com hanweiqizhong.com hanwenzhongyi.com -hanwujinian.com -hanwujinian.net hanximeng.com hanxin.me hanxinsheng.com @@ -45238,7 +44737,6 @@ hao123.com hao123.com.sg hao123.net hao123.ph -hao123.sh hao12306.com hao123img.com hao123n.com @@ -45258,7 +44756,6 @@ hao268.com hao280.com hao315.cc hao315.com -hao315.tv hao352.com hao353.com hao360.com @@ -45279,7 +44776,6 @@ hao9669.com haoad.org haoamc.com haoayi.xyz -haobangkj.com haobangni.com haobangscm.com haobiaoke.com @@ -45416,7 +44912,6 @@ haolaoshi.tv haolawyer.com haole.com haoled9999.com -haoledi.com haolexiang.com haolidayiliao.com haolietou.com @@ -45461,6 +44956,7 @@ haoqixingstem.com haoqq.com haoqu.net haoqu99.com +haoqun.vip haoranbio.com haorantech.com haorc.com @@ -45582,7 +45078,6 @@ haoyouqian.com haoyouxi.cc haoyouyinxiang.com haoyouyuan520.com -haoyuanfurniture.com haoyuanxiao.com haoyue.com haoyue28.com @@ -45637,7 +45132,6 @@ happydino.com happyelements.com happyeo.com happyev.com -happyheath365.com happyhlddz.com happyjuzi.com happykb.com @@ -45717,7 +45211,6 @@ hatlonely.com hatoem.com hatro.cc hatter.ink -hatx.net haval-global.com have.ink havefun.im @@ -45753,7 +45246,6 @@ hb-green.com hb-hengda.com hb-jn.com hb-ly.com -hb-sn.com hb-sx.net hb-water.com hb-ws.com @@ -45778,7 +45270,6 @@ hbaas.com hbaec.com hbafa.com hbafxh.org -hbahwy.com hbahyy.com hbairport.com hbanbao.com @@ -46023,7 +45514,6 @@ hbpx.net hbqcxy.com hbqingteng.com hbqmys.com -hbqnb.com hbqndc.com hbqtgg.com hbqydz.com @@ -46139,6 +45629,7 @@ hbwsrc.net hbwuxue.com hbwuye.com hbww.org +hbxcw.com hbxdf.com hbxfywj.com hbxgzls.com @@ -46146,7 +45637,6 @@ hbxhfc.com hbxhxkj.com hbxinfadi.com hbxingchi.com -hbxiyuan.com hbxmcy.com hbxot.com hbxtzx.com @@ -46158,7 +45648,6 @@ hbyangyuan.com hbyczk.com hbydsg.com hbydsy.com -hbyeson.com hbyh0561.com hbyhfcyy.com hbyidu.com @@ -46182,7 +45671,6 @@ hbyybwff.com hbyysw.com hbzaxh.com hbzbw.com -hbzcmy.com hbzcpg.com hbzgjx.com hbzh.net @@ -46276,7 +45764,6 @@ hcpharm.com hcqixinhb.com hcqxbj.com hcrlm.com -hcs360.com hcschengtou.com hcsd123.com hcsdhgjzx.com @@ -46304,7 +45791,6 @@ hcxgz.net hcxwdb.com hcxxy.com hcxy6.com -hcxym.com hcyacg.com hcydit.com hcyea.com @@ -46421,7 +45907,6 @@ hdtonghe.com hdtyre.com hduofen.com hdurl.me -hduzplus.xyz hdw99.com hdwbcloud.com hdwbsaas.com @@ -46438,7 +45923,6 @@ hdxxw.com hdxyj.icu hdxynet.com hdyanke.com -hdyfy.com hdyoiuy.com hdyouxi.com hdytjt.com @@ -46488,6 +45972,7 @@ healthych.com healthydigitallife.com healzentx.com heanyo.com +hearfly.com hearstchina.com heart-game.com heartide.com @@ -46504,7 +45989,6 @@ hebbc.org hebbr.com hebca.com hebcar.com -hebdtp.com hebecc.com hebeeb.com hebei.cm @@ -46613,10 +46097,8 @@ heepay.com heerit.com hefagear.com hefei.cc -hefeibbs.com hefeifc.com hefeimarathon.com -hefeitv.com heflc.com hefls.net hegii.com @@ -46666,7 +46148,6 @@ heiheiyuyin.com heihekeji.com heijiao.net heijiaovip.com -heijin.org heike07.com heilanhome.com heilei.com @@ -46711,9 +46192,7 @@ heiwahospital.com heiwangke.net heixi.com heiyan.com -heiyan.la heiyan.org -heiyan8.com heiyange.com heiyanimg.com heiying.cc @@ -46806,7 +46285,6 @@ helpson.com helpton.com helptousa.com helpweixin.com -helqc.com helunyun.com heluowenhua.net helywin.com @@ -46841,7 +46319,6 @@ henaninfo.com henanjianling.com henanjiqiren.com henanjubao.com -henanjuchuang.com henanrc.com henansha.com henanshengtang.com @@ -46918,7 +46395,6 @@ hengtianyun.com hengtong-sd.com hengtonggf.com hengtonggroup.com -hengtongjuice-usa.com hengtonglog.com hengtongzhineng.com hengxiangtaji.com @@ -47005,7 +46481,6 @@ herton.net hertzhu.com heryipharma.com heryt111.fun -hescna.com heshanghuitong.com heshdity.com heshecasa.com @@ -47017,6 +46492,7 @@ heson10.com hesongwang.com hesppe.com hessianhealth.com +hestudio.net heta.tech hetaigroup.net hetaixin.com @@ -47130,9 +46606,9 @@ hezelawyers.org hezepharm.com hezeribao.com hezeswjt.com -hezevr.com hezhidongli.com hezhong-china.com +hezhongyihua.com hezhou520.com hezhoubbs.com hezhouhuatong.com @@ -47190,7 +46666,6 @@ hfi-health.com hfish.net hfisngksng.com hfjnxh.com -hfjnz.com hfjscn.com hfjsj.com hfjtjt.com @@ -47230,7 +46705,6 @@ hfshec.com hfsia.com hfsid.com hfspxh.com -hfsspf.com hfssw.com hfsszgcxh.com hfswcz.com @@ -47270,7 +46744,6 @@ hg12333.com hg2693.com hg5177.com hg568.com -hg80022.com hg87.com hg8880.org hg9895.com @@ -47294,7 +46767,6 @@ hgj668.com hgjart.com hgjl.net hgjob.com -hgjtcn.com hgjx.com hgjypx.com hgk-group.com @@ -47369,7 +46841,6 @@ hhdx120.com hhfdjz.com hhfxw.com hhglys.com -hhgpl.com hhh.tm hhh233.net hhh800.com @@ -47410,7 +46881,6 @@ hhozw.com hhpcbs.com hhpj.net hhpmzp.com -hhqhhh.com hhrcard.com hhrcw.com hhrdc.com @@ -47755,7 +47225,6 @@ hivictor.net hiwafer.com hiwaysemi.com hiwbb.com -hiwebgl.com hiwechats.com hiweixiu.com hiwelcom.com @@ -47871,7 +47340,6 @@ hk.uy hk0523.com hk2875.com hk603.hk -hk662.com hk8668.com hkaco.com hkaima.com @@ -47918,7 +47386,6 @@ hkjapp.com hkjinxin.com hkjnn.com hkjsrent.com -hkkidstalent.com hkklock.com hkkuaiyixiu.com hklego.com @@ -48049,7 +47516,6 @@ hlktech.com hlkznsb.com hllinks.com hllives.com -hlljcc.com hlmmold.com hlnhw.com hlnmg.com @@ -48065,7 +47531,6 @@ hlqxj.com hlread.com hlschina.com hlsdq.com -hlshihui.com hlsimu.com hlstlyy.com hltmsp.com @@ -48119,7 +47584,6 @@ hmfxw.com hmgbtv.com hmgj.com hmgreat.com -hmhliot.com hminvestment.com hmj666.com hmjblog.com @@ -48136,7 +47600,6 @@ hmoe.link hmplay.com hmqg.com hmqjsb.com -hmr12.com hmrczp.com hmreuj.com hmrsrc.com @@ -48310,7 +47773,6 @@ hnhflqgc.com hnhfxd.com hnhho.com hnhj.net -hnhjgd.com hnhjjx.com hnhlpp.com hnhnled.com @@ -48336,10 +47798,8 @@ hniso.net hnisvc.com hnjbwh.com hnjcly.com -hnjdjcxh.com hnjg.com hnjiabao.com -hnjianshe.com hnjing.com hnjing.net hnjinmaizi.com @@ -48393,7 +47853,6 @@ hnmsw.com hnmudi.com hnmuseum.com hnmyjt.com -hnmzbg.com hnmzmy.com hnnanshang.com hnnbwdiaosu.com @@ -48518,6 +47977,7 @@ hntican.com hntkg1.com hntky.com hntlxh.com +hntncdn.com hntobacco.com hntqb.com hntv.tv @@ -48596,7 +48056,6 @@ hnyyyfsyy.com hnyyyz.com hnyzfwlkj.com hnyzzy.com -hnzckjw.com hnzdjsj.com hnzfcgxh.com hnzfgjj.com @@ -48700,7 +48159,6 @@ home0668.com home133.com home178.com home616.com -home77.com home898.com homearch.com homearch.shop @@ -48726,7 +48184,6 @@ homekoo.com homekoocdn.com homelandhotel.com homelandol.com -homesforsaleinmoseslake.com homesir110.com hometeda.com hometex114.com @@ -48860,7 +48317,6 @@ hongruikt.com hongsanban.com hongsat.com hongsegs.com -hongsehuoxian.com hongsejiqing.com hongsenlin.com hongshan.com @@ -48978,7 +48434,6 @@ hooenergy.com hoogg.com hooh5.com hookan.com -hookbase.com hoolai.com hoolaigames.com hoolee8.com @@ -49178,7 +48633,6 @@ houzhibo.com houzhiwang.com houzi8.com houzislkdjfkldsdsd.com -hov15.icu hovfree.com howardwchen.com howbuy.com @@ -49210,9 +48664,7 @@ hp-marathon.com hp.com hp123.com hp888.com -hp8g6.icu hpbgb.com -hpbjy.com hpblog.net hpc.cloud hpccake.com @@ -49276,7 +48728,6 @@ hqewimg.com hqfastner.com hqgjzz.com hqgq.com -hqh5.com hqhb.com hqhl.net hqhop.com @@ -49301,6 +48752,7 @@ hqsmartcloud.com hqsoft.cc hqswuye.com hqthw.com +hqtong.com hqts.com hqubbs.com hquu.net @@ -49380,7 +48832,6 @@ hrbyafeng.com hrbzdty.com hrbzhsd.com hrbzyy.com -hrccb.com hrcf168.com hrcfc.com hrday.com @@ -49393,8 +48844,6 @@ hrexam.com hrfc.net hrflc.com hrfoods.com -hrggx.com -hrgrobotics.com hrgsmz.com hrgxyy.com hrhuiyi.com @@ -49409,7 +48858,6 @@ hro-cosmetics.com hroot.co hroot.com hrpackage.com -hrqxy.com hrrsj.com hrs100.com hrsalon.org @@ -49494,7 +48942,6 @@ hshw.com hshy.net hsjk.com hsjkaoyan.com -hsjlrhy.com hsjpgzx.com hsjrhy.com hsjt1983.com @@ -49579,7 +49026,6 @@ hsyunyi.com hsyyf.me hsyymusic.com hsyzg.net -hszhizhen.net hszk.org hszq6.com hszq8.com @@ -49610,7 +49056,6 @@ htaizhou.com htanwang.com htaocloud.com htback.com -htbenet.net htbmsc.com htc-media.com htcases.com @@ -49649,7 +49094,6 @@ htinns.com htinnsjm.com htinv.com htjinju.com -htjk99.com htjob.net htjs.net htjsq.com @@ -49659,7 +49103,6 @@ htjy.net htkaoyan.com htknow.com htky365.com -htldk.com html5-app.com html5china.com html5code.net @@ -49734,6 +49177,7 @@ hua-yong.com hua.com hua1000.com hua168.com +hua5.com huaaiangel.com huaan-cpa.com huaao-trust.com @@ -49867,6 +49311,7 @@ huairen588.com huairougreatwallmarathon.com huairtv.com huairui59.com +huaitao.vip huaixin88.com huaiyangnews.com huaji.com @@ -49976,7 +49421,6 @@ huanggaole.com huangguanluo.com huangh.com huanghaicollege.com -huanghaiting.com huanghanlian.com huanghegongshui.com huanghehr.com @@ -50055,6 +49499,7 @@ huansengifts.com huanshoulv.com huante.com huantest.com +huanting.cc huantour.com huanuomenye.com huanwen.com @@ -50084,6 +49529,7 @@ huaoe.com huaon.com huaougas.com huapai.com +huapiaoer.com huapiaoliang.com huapinwang.com huapontshengchem.com @@ -50131,7 +49577,6 @@ huashengtoutiao.com huashi-sh.com huashi.cc huashi6.com -huashibus.com huashichang.com huashidongman.com huashijie.art @@ -50139,7 +49584,6 @@ huashilm.com huashipharmacymtalionlineybpay.com huashitong.net huashphoto.com -huashu-inc.com huashui.com huashuitax.com huashunxinan.net @@ -50148,6 +49592,7 @@ huasimtour.com huasiwood.com huasongwang.com huasu.net +huasuankeji.com huasuhui.com huasuokeji.com huasyun.com @@ -50166,6 +49611,7 @@ huati.cc huatian-hotel.com huatianxiangsu.com huatong-logistics.com +huatongcloud.com huatu.com huatugz.com huatuo007.com @@ -50283,6 +49729,7 @@ huayinjapan.com huayinlab.com huayinyiliao.com huayitaitech.com +huayitongkeji.com huayitongtai.com huayiwork.com huayou.com @@ -50315,7 +49762,6 @@ huazhiweilai.com huazhixingchina.com huazhongcar.com huazhongcnc.com -huazhongmsg.com huazhongtimes.com huazhu.com huazhuanapp.com @@ -50350,7 +49796,6 @@ hubeizhengao.com hubiao168.com hubiazhi.com hubing.online -hubinlu.com hubpd.com hubsound.com hubstudio.vip @@ -50520,7 +49965,6 @@ huikex.com huikundz.com huila88.com huilaimi.com -huilam.com huilan-online.com huilan.com huilanyujia.com @@ -50528,6 +49972,7 @@ huiliangapp.com huilianyi.com huililong.com huilintyre.com +huilinwang.com huilitc.com huiliu.net huiliubao.com @@ -50636,7 +50081,6 @@ huiwang.net huiweikeji.com huiwenda.com huiwenjidian.com -huiwo.com huiwww.com huixiang360.com huixianginvest.com @@ -50668,10 +50112,10 @@ huiyiai.net huiyicq.net huiyihealth.com huiyijh.com -huiyingdai.com huiyinxun.com huiyizhuo.com huiyou.com +huiyou027.com huiyouhotels.com huiyuandao.com huiyuanjia.net @@ -50789,10 +50233,10 @@ hundun.net hundx.com hunger-valley.com hungfei.com -hunheji.org hunli100.com hunlian100.com hunlihu.com +hunlihu1.com hunlihunli.com hunliji.com hunlimama.com @@ -50800,7 +50244,6 @@ hunlimao.com hunlipic.com hunmiao.com hunsh.net -hunt3.com huntchance.com huntermailfocus.com hunteron.com @@ -50896,7 +50339,6 @@ huopinyuan.com huopu.com huoqibao.com huoqiuw.com -huoquge.com huosdk.com huoshan.cc huoshan.club @@ -50954,7 +50396,6 @@ hur05101kns.com hur05111kns.com hur05120kns.com hur05121kns.com -hurbai.com hurom.vip hurricane618.me hurricanechip.com @@ -51073,6 +50514,7 @@ hwasunpharma.com hwatson.com hwbanaa.com hwbaoan.com +hwbim.com hwbs.org hwbz.net hwccpc.com @@ -51179,7 +50621,6 @@ hxgs.com hxgs.net hxgwott.com hxhaoyu.com -hxhlwjy.com hxhost.com hxhssw.com hxiangjia.com @@ -51209,7 +50650,6 @@ hxlbc.com hxlbd.com hxledu.com hxlhjt.com -hxlife.com hxljjt.com hxlot.com hxlsw.com @@ -51261,7 +50701,6 @@ hxx.net hxxkw.org hxxl6.com hxxlm.com -hxxsljd.com hxycxx.com hxyd.cc hxydup.com @@ -51309,6 +50748,7 @@ hybzm.com hyc.com hyccw.com hycdn.com +hycet.com hycfw.com hycgy.com hyckjic.com @@ -51320,6 +50760,7 @@ hyddd.com hydesolar.com hydfgj.com hydst.com +hydun.com hydz999.com hydzfp.com hydzswyxgs.com @@ -51355,7 +50796,6 @@ hyht.fun hyhuo.com hyhxt.net hyhy.cc -hyhy2.fun hyhyn.com hyilp.com hyimmi.com @@ -51415,7 +50855,6 @@ hyqcw.com hyqdxcl.com hyrainbow.com hysbz.com -hysdbxg.com hysdknb.com hysec.com hyseim.com @@ -51427,13 +50866,13 @@ hyswcn.com hyswjt.net hysyyl.com hysz.net +hyt01.com hyt368.com hytbj.com hytcshare.com hytd.com hytera.com hytgj.com -hyth74.fun hytzqb.com hyundai-chhm.com hyundai-hmtc.com @@ -51522,7 +50961,6 @@ hzbianqu.com hzbike.com hzbjwy.com hzbk.net -hzbohai.com hzbojin.com hzbomed.com hzbook.com @@ -51562,7 +51000,6 @@ hzctjs.com hzctkj.com hzctxh.com hzcy.com -hzcybb.xyz hzczjt.com hzdajiangdong.com hzdare.com @@ -51761,7 +51198,6 @@ hznetwk.com hznewface.com hznews.com hznkg.com -hznlxs.com hznrkj.com hznsh.com hzntjt.com @@ -51875,7 +51311,6 @@ hzwentou.com hzwer.com hzwf.link hzwgc.com -hzwhbcyxh.com hzwindpower.com hzwlt.com hzwluo.com @@ -51928,7 +51363,6 @@ hzyread.com hzyuejie.com hzyuewan.com hzyunding.com -hzyuw.com hzywinf.com hzyxart.com hzyxuart.com @@ -51991,7 +51425,6 @@ i-morefun.com i-mylab.com i-neeq.com i-now.com -i-ones.com i-oranges.com i-same.com i-sensjs.com @@ -52021,7 +51454,6 @@ i0898.org i11r.com i121.net i1236.net -i133.com i1608.com i16949.com i171.com @@ -52032,7 +51464,6 @@ i2863.com i2abc.com i2eas.com i2finance.net -i2wq4.icu i2ya.com i360mall.com i369.com @@ -52070,7 +51501,6 @@ i7play.com i7txt.cc i8001.com i8956.com -i8cn.com i8i8i8.com i8tq.com i91pv.com @@ -52113,7 +51543,6 @@ iamxiaoming.net iamxk.com ianbaby.com iandun.com -iangs.com ianvisa.com ianxing.com iaocwbk.com @@ -52178,6 +51607,7 @@ ibaossl.com ibaotu.com ibaoxiu.net ibaralioho.com +ibashu.net ibayapp.com ibb2b.com ibbwhat.com @@ -52264,7 +51694,6 @@ ic-mag.com ic-valley.com ic2china.com ic37.com -ic5.cc ic71.com ic72.com ic98.com @@ -52464,7 +51893,6 @@ icofchina.com icolor8.com iconntech.com icoolby.com -icoolxue.com icoonal.xyz icoou.com icoremail.net @@ -52491,7 +51919,6 @@ icpisp.net icpkuaiban.net icplishi.com icqone.com -icrazyidea.com ics-sec.com ics.design icshanghai.com @@ -52500,6 +51927,7 @@ icslx.com icsoc.net icson.com icspec.com +icsprout.com icstreet.com icsuns.com icswb.com @@ -52523,6 +51951,7 @@ ictuniv.com iculture.cc icustomslawyer.com icv-ip.com +icvcs.com icver.com icvip.com icxbk.com @@ -52540,7 +51969,6 @@ ida-a.org idachu.com idacn.org idadt.com -idaguang.com idailycar.com idaima.com idangyang.com @@ -52850,11 +52278,11 @@ ifenxiang.cc ifere.com ifeve.com iffline.com -iffobi.xyz ifindever.com ifintechnews.com ifireeye.com ifireflygame.com +ifish7.com ifitbox.com ifjing.com ifkeji.com @@ -52880,6 +52308,7 @@ iflytoy.com ifmtech.com ifmzjt7.com ifnews.com +ifnfn.com ifone360.com ifonelab.net ifonts.com @@ -52919,7 +52348,6 @@ igaokaopai.com igaosheng.com igarwin.com igbill.com -igdcc.com igdzc.com igea-un.org igeak.com @@ -53048,7 +52476,6 @@ ihstatic.com ihtcboy.com ihtmlcss.com ihuaben.com -ihuajian.com ihuan.me ihuang.org ihuanling.com @@ -53141,7 +52568,6 @@ iivey.com iiwoo.com iiycy.com iiyi.com -iiyibbs.com iiyiyi.com ijac.net ijatv.com @@ -53213,6 +52639,7 @@ ikeguang.com ikeled.com ikemeng.com ikepu.com +ikgambwqeqnv.com ikhimalayaniq.com ikj123.com ikj168.com @@ -53335,7 +52762,6 @@ im286.com im286.net im2maker.com im323.com -im520.com im577.com im5i.com im9.com @@ -53429,23 +52855,16 @@ img-space.com img-sys.com img.beauty img.ink +img.net img.run img.samsungapps.com img.vin img001.com img005.com -img00874478.cc img168.net img16888.com -img3266781992.com img4399.com -img6444389787.com -img6857783384.com -img88391511.cc img898.com -img9490563646.com -img9580903245.com -img9879125675.com imgbed.link imgcdc.com imgchr.com @@ -53465,7 +52884,6 @@ imglefeng.com imglink.win imgmarket.net imgmg.com -imgnvd.com imgo.tv imgscdn.com imgse.com @@ -53483,19 +52901,18 @@ imhuchao.com imiaomeng.com imibaby.net imibao.com -imicang.com imicome.com imifun.com imigu.com imiker.com imile-inc.com +imile.com imindmap.cc imitui.com imixpark.com imjiayin.com imkero.net imkevinyang.com -imkira.com imlaidian.com imlazy.ink imlb2c.com @@ -53515,7 +52932,6 @@ immotors.com immune-path.com immusician.com immviragroup.com -imndl.icu imnerd.org imniel.com imnight.com @@ -53527,7 +52943,6 @@ imoeer.com imoemh.com imofan.com imoffice.com -imohu.com imok.run imoke.org imolive.tv @@ -53545,7 +52960,6 @@ imoto.love imou.com imovideo.ru imoxiu.com -imozhua.net imp3.net impcochina.com imperfectionstudio.com @@ -53612,7 +53026,6 @@ imzhongxin.com imzhuomo.com imzudian.com imzy.ink -in-cen.com in-driving.com in-en.com in-freight.com @@ -53759,6 +53172,7 @@ initialview.com initkk.com initpp.com initroot.com +initrr.com initvv.com initxx.com inja.com @@ -53766,7 +53180,6 @@ injectionmachine.com injoinic.com ink4you.com inkankan.com -inkanke.com inkcc.net inkcn.com inke.com @@ -53793,7 +53206,6 @@ innity.net innnnnn.com inno3d.cc innobm.com -innochina.com innocn.com innocomn.com innodealing.com @@ -53831,7 +53243,6 @@ inovance-automotive.com inovogen.com inovppg.com inovpu.com -inpetusgames.com inping.com inpla.net inplayable.com @@ -53875,7 +53286,6 @@ int-agri.com int2018.com int800.com intaek.com -intcache.net intcredo.com intdmp.com intecheye.com @@ -53945,10 +53355,10 @@ invoee.com invzible.com inwaishe.com inwatch.cc +inwuoo.com inxedu.com inxni.com inyota.com -inyutech.com inzone-auto.com inzotek.com ioa365.com @@ -53971,7 +53381,6 @@ ioncol.com ioneball.com ionewu.com iongentherapeutics.com -iooao.com iooeoo.com iooiooi.com iooqoo.com @@ -54029,9 +53438,9 @@ ioxunyun.com ip-cdn.com ip-guard.net ip-soc.com -ip.la ip008.com ip138.com +ip159.com ip192.com ip33.com ip3366.net @@ -54066,7 +53475,6 @@ ipapark.com ipason.com ipay.so ipaylinks.com -ipbaohe.com ipcelou.com ipcfun.com ipchaxun.com @@ -54104,6 +53512,7 @@ ipgoal.com ipguishu.com iphonediule.com ipidea.io +ipidea.net ipin.com ipinba.com ipingke.com @@ -54170,7 +53579,6 @@ ipv6testingcenter.com ipwuji.com ipyhf.icu ipyy.com -ipzuiduo.com iq123.com iq33.com iqalliance.org @@ -54222,7 +53630,6 @@ iqujing.com iqunix.com iqunix.store iqupdate.com -iqushai.com iqxbf.com iqxedu.com iqyun.cc @@ -54354,7 +53761,6 @@ ishenbao.com ishengxue.com ishenping.com ishenyou.com -ishibk.com ishijing.com ishipoffshore.com ishouhong.com @@ -54494,7 +53900,6 @@ it376.com it399.com it478.com it5.cc -it506.com it525.com it528.com it578.com @@ -54526,7 +53931,6 @@ itany.com itany.org itanzi.com itao.com -itaocow.com itaogw.com itaoke.org itaokecms.com @@ -54664,7 +54068,6 @@ itophis.com itopplay.com itopsdk.com itotii.com -itotolink.net itouchchina.com itougu.com itoumi.com @@ -54681,7 +54084,6 @@ itpub.net itpux.com itpwd.com itqaq.com -itqlz.com itrace.cc itrackstar.com itredu.com @@ -54832,13 +54234,10 @@ iwatani-gz.com iwatch365.com iwatertech.com iway-tech.com -iwc999.com iwcoo.com -iwe.la iwebad.com iwebchoice.com iwecan.net -iweeeb.com iweek.ly iweekapi.com iweidu.net @@ -55079,17 +54478,14 @@ j-ui.com j03og.app j0g0.com j1998.com -j1health.com j2ee.cc j2up.com j3cx.com -j4321.com j4lpr.com j5.cc j5757.com j5k6.com j66.net -j7c16.icu j8j9.com j95a.com j99h8.com @@ -55207,7 +54603,6 @@ jayce.icu jayfc.com jayfu.tk jayjw.com -jayumovie.com jayxhj.com jaz581.com jazlxs.com @@ -55284,7 +54679,6 @@ jccpay.com jccsoc.com jccug.com jcdd.com -jce8.com jcebid.com jcecom.com jcedu.org @@ -55358,7 +54752,6 @@ jcsfs.com jcsjt.com jcsrsj.com jcssolar.com -jcstem.com jcsy66.com jcszhtc.com jctmj.net @@ -55387,7 +54780,6 @@ jczh100.com jczhijia.com jczhiyao.com jcznzb.com -jczqw.com jd-88.com jd-app.com jd-bbs.com @@ -55421,6 +54813,7 @@ jdbbx.com jdbchina.com jdbhw.com jdbjba.com +jdbox.xyz jdbpcb.com jdburl.com jdbusiness.com @@ -55744,6 +55137,7 @@ jfyf.cc jfyiyao.com jfyskw.com jfz.com +jfzhcx.com jfzhiyao.com jg058.com jg1060.com @@ -55763,7 +55157,6 @@ jgfarm.com jgg.hk jgg09.com jggame.net -jggjj.com jghstar.com jgjapp.com jgjsoft.com @@ -55781,10 +55174,8 @@ jguanjia.com jgums.com jguo.com jgxb120.com -jgxingyuan.com jgxzy.com jgy.com -jgyb.net jgyee.com jgyljt.com jgyllh.com @@ -55832,10 +55223,10 @@ jhjy.net jhkao.com jhkj.work jhkuajing.com -jhlppacking.com jhltsl.com jhm2012.com jhmnew.com +jhmwo.com jhnsh.com jhnsyh.com jhonge.net @@ -55876,6 +55267,7 @@ jhyhf.com jhyongyou.com jhypcy.com jhytech.com +jhyusqo.com jhyz.net jhzdhjt.com jhzgwx.com @@ -56038,7 +55430,6 @@ jiandaopay.com jiandaoyun.com jiandati.com jiandiao.com -jiane86.com jianeryi.com jianfc.com jianfei.com @@ -56106,7 +55497,6 @@ jiangsuzhongpin.com jiangtai.com jiangtuoedu.com jianguo.tv -jianguoby.com jianguoyun.com jiangweishan.com jiangxing.pub @@ -56192,7 +55582,6 @@ jianshe99.com jiansheku.com jianshen8.com jianshenmi.com -jianshiapp.com jianshiduo.com jianshihui.net jianshionline.com @@ -56252,7 +55641,6 @@ jiaobu365.com jiaobuser.com jiaochengzhijia.com jiaoda306.com -jiaodaseo.com jiaodian.pub jiaodj.com jiaodong.net @@ -56282,7 +55670,6 @@ jiaotu.men jiaow.com jiaoya.com jiaoyf.com -jiaoyian.com jiaoyibao.com jiaoyimao.com jiaoyin.com @@ -56421,8 +55808,6 @@ jidacheng.com jidaihome.com jidanpu.com jidantuoshebei.com -jidao.ren -jidaola.com jide.com jidekan.com jideos.com @@ -56443,13 +55828,11 @@ jiebaogroup.com jiebide.xin jiecang.com jiecangtubemotors.com -jiecao.com jiechengcehui.com jiechengcloud.com jiechikeji.com jiechuang.com jiedaibao.com -jiededy.com jiediankeji.com jiedu.fun jiefadg.com @@ -56553,6 +55936,7 @@ jifenapp.com jifencity.com jifenfu.net jifengkj.com +jifengyun.com jifenh.com jifenyi.com jifenyouhuidui.com @@ -56610,6 +55994,7 @@ jike.info jike800.com jikecdn.com jikedata.com +jikedingyue.com jikefan.com jikegou.net jikeiot.cloud @@ -56697,8 +56082,6 @@ jinbifun.com jinbilianmeng.com jinbitou.net jinbondt.com -jinbuguo.com -jinbumao.com jincaicaiwu.com jincao.com jincaocw.com @@ -56740,7 +56123,6 @@ jinerkang.com jinfan-keji.com jinfanda.com jinfangka.com -jinfapharma.com jinfengcx.com jinfengpaint.com jinfengwine.com @@ -56758,12 +56140,10 @@ jingbo.net jingbotech.com jingc.com jingcai360.net -jingcaijs.com jingcaipaint.com jingcaituijian.com jingch.net jingchang.tv -jingchangkan.tv jingchengban.com jingchengwl.com jingchi.net @@ -56861,6 +56241,7 @@ jingpinhui.com jingpinke.com jingpt.com jingqizhitongche.com +jingqueyun.com jingrongshuan.com jingruigroup.com jingsailian.com @@ -56873,6 +56254,7 @@ jingshifang.net jingshistudy.com jingshizyy.com jingshun-wl.com +jingshzh.com jingsocial.com jingtai-group.com jingtang.xyz @@ -56945,6 +56327,7 @@ jinhongchina.com jinhonggroup.com jinhongnl.com jinhu.me +jinhuapp.com jinhuatv.com jinhuawatch.com jinhuazhe.com @@ -57235,7 +56618,6 @@ jisiedu.com jisikaer.com jissbon.com jisu-cnd.com -jisu1.com jisu1688.com jisuanke.com jisuanla.com @@ -57340,7 +56722,6 @@ jiujiuyunhui.com jiujiuzu.com jiujun.net jiujunqifu.com -jiujy5r3.fun jiukaicable.com jiuku.cc jiuku.com @@ -57593,7 +56974,6 @@ jjqj.net jjr.vip jjrc.net jjrw.com -jjs169.com jjsedu.org jjshome.com jjsip.com @@ -57636,7 +57016,6 @@ jk2h.com jk37du.com jk3a.com jk51.com -jk520.net jk725.com jk90.com jkangbao.com @@ -57652,7 +57031,6 @@ jkcsjd.com jkd.com jkdsz.com jkelec.com -jkfy5.com jkh-ym.com jkhapp.com jkhcfz.com @@ -57680,7 +57058,6 @@ jkunbf.com jkuntp.com jkwatch99.com jkwshk.tv -jkwxw.cc jkx.cc jkxds.net jkxedu.com @@ -57770,7 +57147,6 @@ jlinh.com jljcxy.com jljcz.com jljgdj.org -jljinding.com jljnkj.com jljob88.com jljzzs.com @@ -57813,10 +57189,8 @@ jlsrmyy.net jlstt.com jlsw.cc jlswansen.com -jlswlw.com jlsyqzyy.com jlszlyy.com -jlszykj.com jlt01.com jltchina.com jltq.com @@ -57833,8 +57207,8 @@ jlxzt.com jlylwater.com jlyr2.com jlysgjzx.com +jlystatic.com jlytzk.com -jlywkj.com jlzhongdong.com jlzkb.com jlzsoft.com @@ -57919,6 +57293,7 @@ jmzgo.com jmzhangfu.com jmzns.com jn-bank.com +jn-cits.com jn001.com jn123456.com jn1535.com @@ -57967,13 +57342,11 @@ jnhwjt.com jnhxzc.com jnhyyy.com jnhzxx.com -jnj-energy.com jnjfwzhs.com jnjingxin.com jnjj.com jnjpkj.com jnjszl.com -jnjtsc.com jnkason.com jnky.com jnlab.com @@ -58052,7 +57425,6 @@ job2299.com job250.com job263.com job36.com -job369.com job4ee.com job510.com job5156.com @@ -58070,7 +57442,6 @@ jobcdp.com jobch263.com jobcn.com jobczrc.com -jobdogame.com jobeast.com jobef.com jobgojob.com @@ -58196,7 +57567,6 @@ journeyui.com jourserv.com jouypub.com jovcloud.com -jovenindependiente.com jovetech.com jovision.com jovisionai.com @@ -58278,7 +57648,6 @@ jp.com jp.run jp0663.com jp95.com -jpanj.com jpbeta.net jpcec.com jpchinapress.com @@ -58328,7 +57697,6 @@ jpwindow.com jpwky.com jpwxapp.com jpxm.com -jpxs.org jpxue.com jpxww.com jpyoo.com @@ -58396,7 +57764,6 @@ jrmianban.com jrnba.cc jrntv.com jrpengze.com -jrptweb.org jrqiwen.com jrqzw.net jrsncn.com @@ -58562,7 +57929,6 @@ jsepa.com jser.io jsessh.com jsexpressway.com -jsf666.com jsfish.net jsfj.net jsfls.com @@ -58591,7 +57957,6 @@ jsgerrard.com jsggwhy.com jsgh.org jsghfw.com -jsghle.com jsgho.com jsgho.net jsghx.com @@ -58658,7 +58023,6 @@ jshuana.com jshuanya.com jshuaxiagroup.com jshuaxicun.com -jshuitian.com jshwyy.com jshy.com jshy1688.com @@ -58731,7 +58095,6 @@ jskjgc.com jskjgroup.com jsklcy.com jskly.com -jskmmy.com jskoso.com jskpcg.org jskuajing.com @@ -58770,7 +58133,6 @@ jsmodeling.com jsmolfa.com jsmrmf.com jsmsg.com -jsmuseum.com jsmxgs.com jsmxkj.com jsmxw.com @@ -58969,7 +58331,6 @@ jsxcra.com jsxcx.com jsxdf.com jsxdyh.com -jsxdzg.com jsxfedu.com jsxggx.com jsxgjt.com @@ -58987,7 +58348,6 @@ jsxihu.com jsxinfeng.com jsxinfly.com jsxionghuojxzz.com -jsxkxc.com jsxlhb.com jsxmw.com jsxpbc.com @@ -59008,6 +58368,7 @@ jsycport.com jsycsy.com jsyczls.com jsyd139.com +jsydns15.com jsyefc.com jsyes123.com jsyf88.com @@ -59103,7 +58464,6 @@ jtfengtou.com jtfulfillment.com jtg2g.com jtggame.com -jtggb.com jtgloble.com jtgzfw.com jthcsx.com @@ -59167,7 +58527,6 @@ juanyunkeji.com juaq.com jubaihuijia.com jubaiye.com -jubaopay.com jubaozang.com juben108.com juben68.com @@ -59211,7 +58570,6 @@ juexiang.com juexiaotime.com juexinw.com jueywo.com -jueze.cc jufa-composite.com jufaanli.com jufair.com @@ -59219,7 +58577,6 @@ jufeng313.com jufengcap.com jufengcompany.com jufenginfo.com -jufengputao.com jufengshang.com jufengwuxi.com jufoinfo.com @@ -59228,7 +58585,6 @@ jugezi.com jugongdan.com juguang.com juguifu.com -juguize.com juhaihui.com juhangye.com juhaokan.org @@ -59255,14 +58611,12 @@ juicefs.com juij.fun juiju.com juj66.com -jujayoupin.com juji123.com jujianggcz.com jujiangkk.com jujiangktz.com jujiaobaby.com jujiaonet.com -jujiaozs.com jujias.com jujie.com jujienet.com @@ -59293,6 +58647,7 @@ juliandianqi.com juliang8.com juliangcili.com julianghttp.com +juliangip.com juliangyinqing.com julifenti.com juligroup.com @@ -59380,7 +58735,6 @@ junlebaoruye.com junlee.net junli.net junlian.me -junlian.xyz junlinsz.com junlongtech.com junmin.org @@ -59417,7 +58771,6 @@ juntec.com juntu.com juntuan.net junwu262.com -junxianhr.com junxinmed.com junyao.tech junyi-auto.com @@ -59438,7 +58791,6 @@ junzimen.com junziqian.com junziyize.com juooo.com -jupaokeji.com jupiterlauncher.com jupup.com juqi.com @@ -59526,7 +58878,6 @@ juxin.tv juxingj.com juxinguanjian.com juxinhuizhi.com -juxizhineng.com juxuan.net juxuecms.com juxuewen.com @@ -59629,7 +58980,6 @@ jx139.com jx163-cname.com jx163.com jx188.com -jx1999.com jx3box.com jx3mogu.com jx3pve.com @@ -59684,7 +59034,6 @@ jxfeng.com jxfls.com jxfrjs.com jxfxky.com -jxfybl.com jxg1.com jxg866.com jxga.com @@ -59724,7 +59073,6 @@ jxjt666.com jxjuwentech.com jxjx6.com jxjywater.com -jxjyzy.com jxkeda.com jxkjzb.com jxkp.com @@ -59750,7 +59098,6 @@ jxnjy.com jxnongjiayuan.com jxnxs.com jxnyc.net -jxorg.com jxpdf.com jxphone.com jxphyz.com @@ -59820,7 +59167,6 @@ jxtyzx.org jxtzw.com jxunicom.com jxveg.org -jxw123.com jxw12328.com jxwan.com jxwmanage.com @@ -59843,7 +59189,6 @@ jxyige.com jxyjxy.com jxyqw.com jxysedu.com -jxyspx.com jxysyz.com jxytech.com jxyuannan.com @@ -59854,11 +59199,9 @@ jxzbx.com jxzeto.com jxzikao.net jxzl.cc -jxzlswkj.com jxzxtec.com jxzyx.com jy-dengju.com -jy-fuhao.com jy-leasing.com jy-mach.com jy-sz.net @@ -59910,7 +59253,6 @@ jygyl.com jygz.com jygz.org jyh.com -jyh007.com jyhcd.com jyhmz.com jyhome.com @@ -59927,7 +59269,6 @@ jyjxtech.com jykm88.com jykss.com jykuaidi.com -jyl1688.com jyl88.com jylight.cc jylink.com @@ -59993,11 +59334,11 @@ jywlcm.com jywmgs.com jywxq.com jyxdyzx.com -jyy010.com jyykyy.com jyyun.com jyzb01.com jyzc.com +jyzhongg.com jyzz666.com jyzzdq.com jyzzx.com @@ -60012,7 +59353,6 @@ jz177.com jz182.com jz26666.com jz36666.com -jz4u1.icu jz5u.com jz6.com jz6868.com @@ -60057,10 +59397,8 @@ jzj2009.com jzj9999.com jzjgift.com jzjt.com -jzkelida.com jzking.com jzkjjt.com -jzkoo.net jzlt100.com jzmbti.com jzmjtjn.xyz @@ -60099,7 +59437,6 @@ jzszdq.com jzszzx.com jztey.com jztsjx.com -jztsjyxx.com jztvnews.com jztvxmt.com jztweb.com @@ -60135,7 +59472,6 @@ k12kc.com k12zx.com k165.com k166.org -k18.com k1815.com k1u.com k1wave.com @@ -60161,12 +59497,10 @@ k8.com k8008.com k8k8k8.com k8ser.com -k8sj.com k8smeetup.com k8stech.net k913.com k99.cc -k9techsupport.com ka20.com ka5188.com kaa88888.cc @@ -60232,7 +59566,6 @@ kaigongyi.com kaiguo.com kaihei.co kaihu51.com -kaihuacar.com kaihuaeva.com kaihuia.com kaijia-smt.com @@ -60479,14 +59812,12 @@ kankanzhijian.com kanketv.com kankezw.com kankun-smartplug.com -kanlele.com kanman.com kanmeinv.com kanniao.com kanong.com kanongyun.com kanqibao.com -kanqinpu.com kanqiye.com kanqq.com kanqu.com @@ -60570,11 +59901,11 @@ kaoshibaike.com kaoshibao.com kaoshibb.com kaoshidian.com +kaoshixing.com kaoshizixun.com kaosite.com kaostedu.com kaotipai.com -kaotop.com kaowana.com kaowang.com kaowx.com @@ -60589,7 +59920,6 @@ kaoyango.com kaoyanjun.com kaoyanking.com kaoyanmiji.com -kaoyannanda.com kaoyansiji.com kaoyanwin.com kaoyaya.com @@ -60644,7 +59974,6 @@ kbao123.com kbcdn.com kbcmw.com kbcool.com -kbddftp.com kbdfans.com kbgogo.com kbgok.com @@ -60666,7 +59995,6 @@ kbscloud.com kbsml.com kbspheres.com kbyun.com -kbzs88.com kc-keycool.com kc0011.net kc87.com @@ -60760,6 +60088,7 @@ kebvalves.com kechengbiao.net kechengkeli.com kechuang.org +kechuangai.com kechuangfu.com keda-digital.com keda-group.com @@ -60808,7 +60137,6 @@ keerworld.com keetalks.com keewin.com keey.sh -kefayuan.com kefeijn.com kefenxi.com kefoo.com @@ -60819,7 +60147,6 @@ kehanedu.com kehaohao.com kehou.com kehu51.com -kehua360.com kehuaapp.com kehuan-upward.com kehuda.com @@ -60884,7 +60211,6 @@ kelilens.com kelimotor.com kelinpower.com kelinsoft.com -kelkjj.com kelon.com kelong-chemical.com kelong-powder.com @@ -60929,6 +60255,7 @@ kenjichai.com kenjieer.com kenkapacking.com kenpai.com +kenpains.com kenshu.cc kenshuhu.com kensuntec.com @@ -61019,7 +60346,6 @@ keycom-ip.com keydak.com keydatas.com keyde.com -keydot.net keyfc.net keygotech.com keyi.mobi @@ -61080,7 +60406,6 @@ kfjyd.com kfjyjt.com kflhgs.com kfmanager.com -kfothf.xyz kfqizhongji.com kfsddj.com kfstjt.com @@ -61282,6 +60607,7 @@ kinzhan.com kinzoncap.com kiomodesign.com kira.cool +kirakuapp.com kirgen.com kiriko-china.com kirin-tech.com @@ -61390,7 +60716,6 @@ kk1bie336689.com kk30.com kk30.net kk3g.net -kk888888kk.com kkabc.com kkapp.com kkcache.net @@ -61431,7 +60756,6 @@ kkmh.com kkmicro.com kkmop.com kkong.vip -kkpan.com kksmg.com kksofts.com kkt.com @@ -61477,7 +60801,6 @@ klisedu.com kliwu.com kljiyou.com kljtc.com -klkk66.fun kllife.com klmnf.com klmy118114.com @@ -61486,7 +60809,6 @@ klmymarathon.com klmyssn.com klner.com klniu.com -kloong.com klpbbs.com klqcb.com klqcv.com @@ -61504,6 +60826,7 @@ klx-tech.com klxksci.com klxsw.com klxuexi.com +klyang.com klzhlogistics.com km.com km10z.net @@ -61540,7 +60863,6 @@ kmgdgs.com kmgg88.com kmguolv.com kmgybsr.com -kmhdjz.com kmhpc.net kmhwtz.com kmhybz.com @@ -61594,6 +60916,7 @@ kmzx.com kmzx.org kn-light.com kn-nanjing.com +kn0sky.com kn120.com knbmotor.com knewbi.com @@ -61602,7 +60925,6 @@ knewsmart.com knfeco.com knight-un.com knightli.com -knightyoung.asia kninebox.com knj-nanjing.com knn-nj.com @@ -61617,6 +60939,7 @@ knowhowedu.com knowingclouds.com knowingcloudvip.com knowingyun.com +knowlink-assets.com knownpcb.com knownsec.com knowsafe.com @@ -61679,7 +61002,6 @@ kongapi.com kongbugushi.com kongdao.com kongduan.com -kongfou.net kongfz.com kongge.com kongjianjia.com @@ -61689,7 +61011,6 @@ kongjitang.com kongjun.com kongkangroup.com konglei.com -kongliankj.com konglonggu.com kongming-inc.com kongmt.com @@ -61712,6 +61033,7 @@ konotaku.com kooaoo.com koobai.com koobeemobile.com +koobone.com koocdn.com kooci.net koodi98.com @@ -61743,7 +61065,6 @@ kopperchem.com koreabt.com koreaxin.com koreaxing.com -koreniztreh.net korirl.com kormee.com kornsweets.com @@ -61778,6 +61099,7 @@ koukao.net koukao.org kouke5.com koukousky.com +koukoutu.com koukuko.com koumakan.cc kouqiangba.com @@ -61827,7 +61149,6 @@ kqalevel.com kqapi.com kqgeo.com kqgyl.com -kqidong.com kqj123.com kqjtj.com kqjtj.net @@ -61846,7 +61167,6 @@ kr126.com krahag.com kraken19-at.cc krbk.com -krbulhb.com krd168.com krdrama.com krenzheng.com @@ -61893,7 +61213,6 @@ kscord.com ksdedu.com ksdhgy.com ksdown.com -ksdq0514.com ksecit.com ksedt.com ksehs.com @@ -61998,12 +61317,6 @@ ktctjt.com ktcupdate.com ktdd510.cc ktdd517.cc -ktdl696.cc -ktdl699.cc -ktdl705.cc -ktdl708.cc -ktdl709.cc -ktdl710.cc ktfdsb.com ktgzdmw.com kting.info @@ -62013,7 +61326,6 @@ ktlstbg.com ktmap.com ktmv.com ktmwan.net -ktokib.com ktplay.com ktrcn.com ktrlight.com @@ -62066,6 +61378,7 @@ kuaibiancheng.com kuaibiao2000.com kuaicad.com kuaicha365.com +kuaicha888.com kuaichala.com kuaichale.com kuaidadi.com @@ -62266,7 +61579,6 @@ kugoo.com kugou.com kugou.la kugou.net -kugou.tv kugouaudio.com kugouipv6.com kugoukid.com @@ -62418,7 +61730,6 @@ kurtizanki-spb.com kurz-sh.com kusdk.com kusen888.com -kushanfudaojixie.com kushe.net kushou.com kushouwang.net @@ -62468,7 +61779,6 @@ kuzhengame.com kuzu.com kv-kva.com kvenjoy.com -kvhee.com kviso.com kvogues.com kvov.com @@ -62503,7 +61813,6 @@ kwaixiaodian.com kwaiying.com kwaizt.com kwangfeng.com -kwgaewsl.shop kwggroupholdings.com kwimgs.com kwinbon.com @@ -62551,6 +61860,7 @@ kxload.com kxmas.com kxmrg.com kxow.com +kxparking.com kxphy.com kxq520.com kxqo2ev.com @@ -62572,7 +61882,6 @@ kxyyf.com ky-cable.com ky-express.com ky.live -ky0ip30.com ky393834.com ky595images.com ky5yx.com @@ -62597,7 +61906,6 @@ kyemall.com kyfey.com kygroup.ltd kygso.com -kygz1.com kyhtech.com kyhyxy.com kyjlhz.com @@ -62670,7 +61978,6 @@ la-chinata.hk la-mo.com la-technology.com la31.com -la66.com laawoo.com lab-bst.com lab-easttitan.com @@ -62689,7 +61996,6 @@ labno3.com labpyx.com labuladong.online labview.help -labworld.cc labxing.com labzj.com lacaoshi.com @@ -62799,7 +62105,6 @@ laixs.com laixueedu.com laixuexi.cc laiyagushi.com -laiyang58.com laiye.com laiyifen.com laiyouhui.net @@ -62821,7 +62126,6 @@ lalaedu.com lalavision.com lalawaimai.com lalkk.com -lamabang.com lamahui.com lamaison-arting.com lamall.com @@ -62912,7 +62216,6 @@ langan-group.com langao.com langchao.com langchaosh.com -langchengzhixin.com langchi.com langduqi.com langemedtech.com @@ -62958,7 +62261,6 @@ langxingys.com langxiyuyou.com langzezs.com lanh.love -lanhaicaijing.com lanhanba.net lanhao.name lanhu.com @@ -63038,12 +62340,9 @@ lansscl.com lansun-pumps.com lansurcn.com lantaochina.com -lantian.tv lantiangufen.com lantianyu.net -lanting123.com lantinglou.com -lantujx.com lantumap.com lantushiji.com lanuss.com @@ -63204,7 +62503,6 @@ lapin365.com laplace-semi.com lapulace.com laravel-admin.org -laravel-china.org laravelacademy.org larenla.com large.net @@ -63274,6 +62572,7 @@ lavaradio.com lavdrzv.xyz law-lib.com law-star.com +law-wei.com law01.net law6888.com lawasst.com @@ -63302,6 +62601,7 @@ lawyee.com lawyee.net lawyee.org lawyer-wangjiawei.com +lawyer186.com lawyerbridge.com lawyermr.com lawyerpass.com @@ -63340,7 +62640,6 @@ lazystones.com lb-yz.com lb0398.com lb5.com -lbaihua.com lbbb.cc lbbee.com lbbniu.com @@ -63429,6 +62728,7 @@ lcfby.com lcfcw.com lcfgjs.com lcfile.com +lcftech.com lcfw.co lcgdbzz.org lcgjcj.com @@ -63526,7 +62826,6 @@ ldseals.com ldshijie.com ldshj.com ldsink.com -ldszpx.net ldtdn.com ldtec.com ldteq.com @@ -63617,7 +62916,6 @@ learn-quantum.com learn.microsoft.com learndiary.com learnfuture.com -learning-archive.org learningsj.com learnku.com learsun.com @@ -63669,7 +62967,6 @@ ledctl.com lede.com ledguhon.com ledhyzm.com -ledianduo.com ledianyun.com lediaocha.com ledmary.com @@ -63839,6 +63136,7 @@ lemonpiggy.com lemonplus.asia lemonsay.com lemonttt.com +lemonvp.com lemonyd.com lemote.com lempstack.com @@ -64063,7 +63361,6 @@ leyun365.com leyuncn.com leyungame.com leyunge.com -leyuwen.com leyuxyz.com leyuz.com lezai.com @@ -64113,7 +63410,6 @@ lfszk.com lftdzd.com lfungame.com lfwin.com -lfwx1.com lfx20.com lfxww.com lfywood.com @@ -64133,7 +63429,6 @@ lgcx.com lgdisplayproduct.com lgdxtech.com lgexam.com -lgfang.com lgfdcw.com lgfzgroup.com lghd111.com @@ -64201,7 +63496,6 @@ lhl.zone lhl7.com lhmj.com lhmp.cc -lhnic.com lhp-cdn-game.online lhp-cdn-update.online lhpharma.com @@ -64234,7 +63528,6 @@ li63.com li91.com liageren.com lian-ou.com -lianaibashi.com lianaibiji.com lianaixingwei.com lianbei66.com @@ -64287,7 +63580,6 @@ liangyiyy.com liangyuan.com liangzhishu.com liangziheikeji.com -liangzuji.com lianhaikeji.com lianhanghao.com lianhaokeji.com @@ -64295,7 +63587,6 @@ lianhecang.com lianhejiaju.com lianhengtec.com lianhepaimai.com -lianhjz.com lianhuangroup.com lianjia.com lianjianode.xyz @@ -64314,7 +63605,6 @@ liankuaiche.com lianle.com lianli168.com lianlian.com -lianlianchem.com lianlianlvyou.com lianlianpay-inc.com lianlianpay.com @@ -64352,7 +63642,6 @@ lianwen.com lianwifi.com lianwo8.com lianwwl.com -lianxiangcloud.com lianxianjia.com lianxinapp.com lianxing.org @@ -64379,7 +63668,6 @@ liaogx.com liaoing.com liaoji.com liaojiu.net -liaokeyu.com liaokong.com liaoliao.com liaoningmoduo.com @@ -64388,6 +63676,7 @@ liaosam.com liaoshenrc.com liaotiantu.com liaowei.net +liaoworking.com liaoxiwenhua.com liaoxuefeng.com liaoyuanchats.com @@ -64469,6 +63758,7 @@ lidihuo.com liding.me lidodo.com lidoooo.com +lidu6.com lidw.com lie.icu liebao.live @@ -64501,6 +63791,7 @@ lierda.com lierfang.com liermusic.com liesauer.net +lieshi.net lieshuku.com lietou-edm.com lietou-static.com @@ -64522,7 +63813,6 @@ liezhen442.com liezhun.com lif8.com lifan.com -lifanfc.com lifebook.red lifediary.shop lifeeu.com @@ -64545,7 +63835,6 @@ lifeweeker.com lifeyk.com lifeyn.net lifezb.com -liffmp.com lifo-fj.com lifotronic.com lifox.net @@ -64597,7 +63886,6 @@ lihuasoft.net lihui.net lihuia.com lihun66.com -lihunlawer.com liigou.com lijiabaijc.com lijiabrasstube.com @@ -64660,7 +63948,6 @@ lilysamericandiner.com lilysgame.com limabaoxian.com limaoqiu.com -limax.com limebenifit.com limei.com limeiltd.com @@ -64700,14 +63987,12 @@ linfan.com linfeicloud.com linfen365.com linfeng.tech -linfenshenzhou.com linfenwater.net ling-shi.com lingangholding.com lingangic.com lingaoren.com lingbao-e.com -lingbaoshi.com lingboxauto.com lingceu.com lingd.com @@ -64752,6 +64037,7 @@ linglonglife.com linglongtech.com lingmao.tech lingmeijie.com +lingmeng888.com lingmovie.com lingnanpass.com lingo-ace.com @@ -64802,6 +64088,7 @@ lingxingkj.com lingxiuwenlv.com lingxmall.com lingy.cc +lingyanghuyu.com lingyi.org lingyifang.com lingyihanhua.com @@ -64880,7 +64167,6 @@ linkiebuy.com linkingcloud.com linkingme.com linkist.net -linkmone.com linknewideas.com linkoing.com linkolder.com @@ -65181,7 +64467,6 @@ liuliangzu.com liulianqi123.com liuliguo.com liulin.cc -liulingu.com liulishuo.com liulishuo.work liuliushe.net @@ -65244,7 +64529,6 @@ liuyuechuan.com liuyunliumeng.com liuyuntian.com liuzaoqi.com -liuzekang.com liuzhihang.com liuzhixiang.com liuzhiyugzs.com @@ -65337,7 +64621,6 @@ liyanggroup.com liyangic.com liyangrc.com liyangtuopan.com -liyangzone.com liyanmobi.com liyaochao.com liyegroup.com @@ -65390,7 +64673,6 @@ lizikeji.vip lizilaw.com liziqiche.com lizitongxue.com -liziwl.com liziwu.net lizixin.cool liziyuan.com @@ -65403,6 +64685,7 @@ ljbbj.com ljcdn.com ljclz.work ljflavor.com +ljh.cool ljhjgc.com ljhjny.com ljia.com @@ -65431,7 +64714,6 @@ ljsdk.com ljsy2017.com ljth.hk ljtx.com -ljutdu.xyz ljvc0.icu ljw113.com ljwebs.com @@ -65448,7 +64730,6 @@ lk0355.com lk361.com lk366.com lkalpos.com -lkblog.net lkcash.com lkcgyl.com lkchemical.com @@ -65484,7 +64765,6 @@ lkyljt.com lkyou.com ll-hao123.com ll1024.com -ll11.com llang.net llaoyou.com llcat.tech @@ -65524,7 +64804,6 @@ llssite.com llsttapp.com llsun.com lltckjyxgs.com -lltllt.com lltoken.com lltskb.com llumar-cn.com @@ -65544,7 +64823,6 @@ lm263.com lm335.com lm9999.com lmacc.com -lmagneseshop.com lmanmo.com lmanucell.com lmbct.com @@ -65555,9 +64833,7 @@ lmdk01.com lmdouble.com lmengcity.com lmeurbnjs.com -lmfdt.com lmjd2.app -lmjfy.com lmjtgs.com lmjx.net lmjzd.com @@ -65602,7 +64878,6 @@ lncmcc.com lncmxy.com lncnw.com lnddhxq.com -lndhbv.com lndhdx.com lndnw.com lndwkj.com @@ -65673,7 +64948,6 @@ lnwish.com lnwoo.com lnxmt.com lnxysf.com -lnxzj.com lnyahui.com lnydjt.com lnyxcj.com @@ -65688,7 +64962,6 @@ lnzzpf.com lo97.com loac.cc loadingbay.com -loan163.com loansliml.com local-ip.online locatran.com @@ -65798,7 +65071,6 @@ loncent.com loncin.com loncinindustries.com londerful.com -london9999.com londonermacaoresort.com lonelystar.org lonery.com @@ -65849,7 +65121,6 @@ longhuvip.com longi.com longigroup.com longjcun.com -longjiaowan.com longjiazuo.com longjisteel.com longjisz.com @@ -65964,8 +65235,6 @@ lookao.com lookbaby.com lookbravo.com lookchem.com -lookcss.com -lookedu.net lookfor.one lookgame.com looking-car.com @@ -66011,7 +65280,6 @@ lostdeer.xyz lostphp.com lostsakura.com lot-ml.com -lotbur.xyz lotevision.com lotianshangx.com lotlab.org @@ -66028,7 +65296,6 @@ lotusfr.com lotut.com lou86.com loubobooo.com -loudika.com louding.com loudseas.com louge.ltd @@ -66055,7 +65322,6 @@ loveabc.net lovean.com loveapp.com lovebizhi.com -lovebuy99.com lovedword.com loveforvenus.com lovefree.cc @@ -66081,7 +65347,6 @@ loveota.com loveota.net lovepd.com loverdoor.com -loveroise.com lovesec.com loveshang.com lovesoo.org @@ -66144,7 +65409,6 @@ lqbby.com lqbj.com lqbj66.com lqfeather.com -lqgrdj.com lqhualang.com lqjob88.com lqjt.com @@ -66257,7 +65521,6 @@ lsmaps.com lsmtjy.com lsmzt.cc lsnm.com -lsoli.com lsoos.com lspjy.com lsplayer.com @@ -66335,7 +65598,6 @@ ltesting.net ltfwzs.com ltggc.com ltggzy.com -ltgtf.com ltgtm.com lth.xyz lthqdl.com @@ -66351,7 +65613,6 @@ ltlmjx.com ltly.so ltnic.com ltoit.com -ltopto.com ltp-cloud.com ltp.ai ltplighting.com @@ -66413,7 +65674,6 @@ luchengas.com luchentech.com luchenwater.com luchuang.com -luchuanquan.com luciaz.me lucifer.ren luck-number.com @@ -66426,7 +65686,6 @@ luckincoffeecdn.com lucklnk.com luckmail.net luckup.cc -luckxh.com lucky286.com lucky8k.com luckyair.net @@ -66487,7 +65746,6 @@ luhehospital.com luhu.co luhua.cc luhuadong.com -luhuaseed.com luhuiwl.com lujiaming.com lujiandairy.com @@ -66572,7 +65830,6 @@ luolai.tech luolaoguai.com luolatu.com luoli.net -luolicloud.com luolikong.net luoluoluoluo.xyz luomanxincai.com @@ -66584,7 +65841,6 @@ luoniushan.com luoohu.com luooqi.com luopan.com -luoqiu.com luoqiu.us luoqiuzw.com luori.net @@ -66743,7 +65999,6 @@ lvfapiao.com lvgangss.com lvgou.com lvgset.com -lvguang.net lvguo.net lvjhx.com lvjiaoya121.com @@ -66903,6 +66158,7 @@ lxhuwai.net lxhz-avionics.com lxi.me lxjapp.com +lxjcjg.com lxjiasu.com lxkj.info lxkj.site @@ -67025,7 +66281,6 @@ lygnews.com lygou.cc lygrc.net lygrffw.com -lygrtm.com lygsgt.com lygshjd.com lygshlxh.com @@ -67038,12 +66293,13 @@ lyh8888.com lyhb88.com lyhendry.com lyhero.com -lyhhdz.com lyhkh.com lyhomestayinn.com lyhuadu.com lyhx.net lyia.org +lyihub.com +lyilife.com lyjiuzhou.com lyjj.net lyjksw.com @@ -67064,6 +66320,7 @@ lymy1684.com lynkco-test.com lynkco.com lynlzqy.com +lynne.ink lynr.com lyobs.com lyou123.com @@ -67071,7 +66328,6 @@ lyouoa.com lypb.com lypd.com lypdl.com -lyplay.net lypower.com lyps.net lypyxx.com @@ -67133,10 +66389,10 @@ lyyapp.com lyyfny.com lyyg.com lyyzedu.com -lyyzyfs.com lyz810.com lyzaix.com lyzb.com +lyzb33.app lyzfgjj.com lyzggs.com lyzhanlang.com @@ -67328,12 +66584,10 @@ lztb.com lztdzy.com lzteli.com lztlcyxx.com -lztv.tv lztvnet.com lztx123.com lztxw.com lztzgroup.com -lzw.me lzweidaoyou.com lzwg.com lzwi.fun @@ -67491,7 +66745,6 @@ macmao.com macmicst.com macno1.com macocn.com -macos.space macoshome.com macpeers.com macrolake.com @@ -67531,7 +66784,6 @@ madio.net madisonboom.com madissonline.com madmalls.com -madouer.com madouvip.com madserving.com maemo.cc @@ -67572,7 +66824,6 @@ magtechjournal.com maguang.net magvision.com mahailushu.com -mahambn.com mahjongai.net mahjongcup.com mahjongcup.net @@ -67650,7 +66901,6 @@ maimaiche.com maimaidx.cc maimaigongkong.com maimaimaiw.com -maimaiyouhuiquan.com maimemo.com maimemostatus.com maimiaotech.com @@ -67662,11 +66912,13 @@ mainone.com mainshe.com maintao.com mainwww.com +mainyou.com maipu.com maiqun.vip maiqunwang.com mairoot.com mairuan.com +mairuancn.com mairuanwang.com maisanqi.com maiscrm.com @@ -67684,7 +66936,6 @@ maitao.com maitaowang.com maitegao.com maitewang.com -maitianquan.com maitix.com maitix.net maitu.cc @@ -67722,7 +66973,6 @@ majorbio.com majorsec.com majorserving.com majsoul.com -majuqiao.com maka.im maka.mobi makaevent.com @@ -67823,9 +67073,7 @@ manfen.net manfen5.com manfred-auto.com manfrottoclub.com -mangacopy.com mangafuna.xyz -mangafunb.fun manganesenanhai.com mangg.com mangguo.com @@ -67857,7 +67105,6 @@ manhua8.net manhuacheng.com manhuadaohang.com manhualang.com -manhuama.net manhuang.org manhuapi.com manhuaren.com @@ -67867,6 +67114,7 @@ manjiwang.com mankebao.com mankewenxue.cc manlaxy.com +manli.ltd manlinggame.com manlinwood.com manluoni.com @@ -67892,7 +67140,6 @@ manpowergrc.com manrong.win manshaoco.com manshijian.com -manshuo.ink mantachina.com mantewei.com mantianfei.net @@ -67933,7 +67180,6 @@ maogua.com maogumaogu.com maogx.win maoha.com -maohaha.com maohongdz.com maojiaoque.com maojiuxs.com @@ -67942,8 +67188,8 @@ maoken.com maoln.com maolog.com maolvtv.com +maomao365.com maomaoche.com -maomaojie.com maomaotang.com maomaoxue.com maomaoyuanma.com @@ -67961,7 +67207,6 @@ maoshanger.com maoshu520.com maotao.net maotiangroup.com -maotiart.com maotuan.net maotuying.com maowotao.com @@ -68217,7 +67462,6 @@ mayihr.com mayiic.com mayikt.vip mayima.net -mayipk.com mayishebao.com mayishoubei.com mayitek.com @@ -68292,7 +67536,6 @@ mbs.download.prss.microsoft.com mbsifu.com mbti16cc.com mbwxzx.hk -mbxt.net mbysrobot.com mbzhu.net mc-biolab.com @@ -68307,7 +67550,6 @@ mc520.com mc91.com mc9y.net mcake.com -mcar.vip mcbang.com mcbao.com mcbbs.co @@ -68330,7 +67572,6 @@ mcearnmore.com mcecy.com mceebbs.com mcfound.net -mcfsji.com mcfun.tv mcfxw.com mcgsjt.com @@ -68399,7 +67640,6 @@ md-store.com.tw md5ma.com md6v3pq.com mdapp.tv -mdaxue.com mdbchina.com mdbimg.com mdclub.org @@ -68415,7 +67655,6 @@ mdfors.com mdfull.com mdhky.com mditie.com -mdj2y.com mdjgjjt.com mdkj1.com mdl.ink @@ -68635,7 +67874,6 @@ meihudong.com meihutong.com meiji-icecream.com meijia51.com -meijiacun.com meijiadaren.com meijiaedu.com meijiandaojia.com @@ -68683,7 +67921,6 @@ meilaoshi.com meili-inc.com meili-oh.com meili43.com -meilibaobao.com meilichengren.com meilidongnanya.com meiligaosu.com @@ -68744,6 +67981,7 @@ meishesdk.com meishi.cc meishi13.com meishichina.com +meishiffx.online meishij.net meishijr.com meishilife.com @@ -68798,7 +68036,6 @@ meitukiss.com meitumail.com meitumob.com meitumobile.com -meitumv.com meitun.com meituncdn.com meitupaipai.com @@ -68806,6 +68043,7 @@ meitupic.com meitupingzi.com meituriji.com meiturom.com +meitushijie.com meitushop.com meitushouji.com meitusnap.com @@ -68933,7 +68171,6 @@ menglu.com mengmayw.com mengmei.org mengniang.tv -mengniu99.com mengniuarla.com mengniuir.com mengou.net @@ -69007,7 +68244,6 @@ mesou.net mesowe.com mesresearch.com messecloud.com -mesule.com met.red met169.com meta-stone.com @@ -69059,7 +68295,6 @@ meu95otw4967t.com meuicat.com meutu.com mevionchina.com -mevyyk.com mew.fun mewx.art mexicopanama.com @@ -69090,7 +68325,6 @@ mfexcel.com mfg-magnets.com mfgchn.com mfhcd.com -mficp.com mfinetech.com mfisp.com mfjl.wiki @@ -69141,7 +68375,6 @@ mgnav.com mgogo.com mgongkong.com mgplay.com.tw -mgpyh.com mgs123.com mgsdk.com mgslb.com @@ -69178,7 +68411,6 @@ mhi-ac.com mhimg.com mhinele.com mhito.net -mhk163.com mhkami.com mhnzww.com mhome.com @@ -69228,7 +68460,6 @@ mi72.net mia.com mian520.com mianbao.com -mianbaotou.com miancp.com miandanbx.com mianfeiic.com @@ -69373,6 +68604,7 @@ microxiang.com microyan.com microzuji.com mictormedical.com +micu.hk micw.com micyjz.com mid-link.net @@ -69424,6 +68656,7 @@ mifanli.com mifanlicdn.com mifei.com mifen517.com +mifeng.plus mifengchengshi.com mifengv.com mifengvv.com @@ -69439,6 +68672,7 @@ migames.com migelab.com miglioriorologi.com migood.net +migu.store migucloud.com migufm.com migufun.com @@ -69459,6 +68693,7 @@ mihoyocloud.com mihoyogift.com mihoyomall.com mihua.net +mihuachat.com mihuangame.com mihuashi.com mihuatown.com @@ -69555,7 +68790,6 @@ mimeihui.com mimi123.vip mimi518.com mimidi.com -mimimama.com mimimeu.com mimiteng.com mimixiaoke.com @@ -69631,7 +68865,6 @@ mingheng-group.com mingheyaoye.com mingheyiyao.com minghezhi.com -minghg.com minghuatang.com minghuaxinda.com minghui.com @@ -69675,7 +68908,6 @@ mingxigu.com mingxingku.com mingxinglai.com mingxuan.store -mingxuanxz.com mingya.mobi mingyafeng.com mingyang100.com @@ -69746,7 +68978,6 @@ minkave.com minking.cc minleai.com minli.com -minlida.com minmetals.com minor-tech.com minovapharma.com @@ -69772,7 +69003,6 @@ minxindai.com minxing365.com minxiwang.com minxue.net -minyueqi.com minyukji.com minyunit.cool minz.press @@ -69816,7 +69046,6 @@ mirmzhy.com mirreal.net mirrorcast.tv mirrorchyan.com -mirrorcn.com misaka.center misall.com miscd.com @@ -69878,7 +69107,6 @@ mixcm.com mixdo.net mixian88.com mixiaojin.com -miximixi.me mixin.cc mixinshe.com mixiong.tv @@ -70007,7 +69235,6 @@ mlj130.com mlj162.com mlj194.com mlj36.com -mlj55.com mlj93.com mljydoors.com mlkmba.com @@ -70015,7 +69242,6 @@ mllj.net mlmcms.com mlmtz.com mlnk.me -mlnrz.com mlnsoft.net mlocso.com mlog.club @@ -70054,7 +69280,6 @@ mm1qj.icu mm2hservices.com mm3yy.com mm8mm8.com -mm9177.com mmall.com mmaqa.com mmarket.com @@ -70119,7 +69344,6 @@ mmww.com mmxchina.com mmxiaowu.com mmxmmx.com -mmybt.com mmyj.com mmyuer.com mmyxshop.com @@ -70132,7 +69356,6 @@ mnancheng.com mnbvbqw.com mnbvdfg.com mnbvtgv.com -mnclighting.com mndqlib.net mnengine.com mnihyc.com @@ -70160,6 +69383,7 @@ moage.com mob.com mob55.com mobaders.com +mobai.sbs mobaibox.com moban.com mobanhao.com @@ -70220,7 +69444,6 @@ mobwan.com mocache.com mocafilm.com mocartoon.com -moccaanimation.com mochafengbao.com mochai.store mochateam.com @@ -70264,6 +69487,7 @@ modouwangluo.com modstart.com modujx11.com modujx13.com +modujx14.com modujx15.com modujx16.com moduyun.com @@ -70286,6 +69510,7 @@ moefactory.com moefantasy.com moefou.org moegirl.org +moegirl.tw moehot.com moehu.org moehui.com @@ -70378,7 +69603,6 @@ mokahr.com mokamrp.com mokatyper.com mokayuedu.com -moke9.com mokeyjay.com moko.cc mokxing.com @@ -70403,6 +69627,7 @@ molimoli.tech moliplayer.com molipy.com moliqiji.com +molishe.com molixiangce.com mollervilla.com molwater.com @@ -70537,7 +69762,6 @@ moreless.io morelink.net moremeat.com moremoneyads.com -morequick.com morequick.net moresing.com morestep.com @@ -70581,7 +69805,6 @@ mosuzi.com motanku.com motel168.com motherchildren.com -motianmi.com motic-electric.com motie.com motieimg.com @@ -70701,7 +69924,6 @@ mpyit.com mqant.com mqc168.com mqcoffee.com -mqguitar.com mqhospital.com mqikan.com mqmgroup.com @@ -70722,7 +69944,6 @@ mr-ping.com mr77.com mr91.com mrbanana.com -mrbcq.com mrbird.cc mrbook114.com mrcrm.com @@ -70737,6 +69958,7 @@ mrentea.com mrgaocloud.com mrhallacg.com mrhe.net +mrhs.cc mrjeke.com mrjiang.com mrjjxw.com @@ -70781,7 +70003,6 @@ msd-facing.com msddp.com msdn.download.prss.microsoft.com msdn.hk -msdn.im msdnxitong.com msdpmarathon.com msdprc.com @@ -70841,7 +70062,6 @@ msxxg.com msy5.com msyc.cc msyidai.com -msymjz.com msyos.com msysk.com mszdld.com @@ -70912,7 +70132,6 @@ mtrmart.com mtschina.com mtsjgf.com mtspark.com -mtssysb.com mttlab.com mttsq.com mtty.com @@ -70968,7 +70187,6 @@ muguayuan.com muhai.net muhan.co muhan.ltd -muhangkeji.com muhoujiemi.com muhuo.chat muidar.com @@ -70988,7 +70206,6 @@ mulangbrand.com mulanlake.com mulazim.com mulightapp.com -mulingyuer.com mulinsen.com mulinyun.com multi-parking.com @@ -70999,6 +70216,7 @@ mumayi.com mumbuy365.com mumingfang.com mumunv.com +mumuplayer.com mumuxili.com mundane.ink mungerlab.net @@ -71066,7 +70284,6 @@ muyee.com muyer.com muyeseed.com muyewx.com -muyi99.com muyidc.com muyingjie.com muyingzhijia.com @@ -71092,7 +70309,6 @@ muzsj.com muzuhui.com mvad.com mvashanghai.org -mvcat.com mvhere.com mvoicer.com mvote.net @@ -71139,7 +70355,6 @@ mxbc.com mxbc.net mxbiao.com mxbsy.com -mxceyjj.com mxchip.com mxddp.com mxde.com @@ -71185,7 +70400,6 @@ mxtcn.com mxtronics.com mxun.com mxw3.com -mxwatch.net mxweiqi.com mxwz.com mxxjh.com @@ -71212,6 +70426,7 @@ my089.com my120.org my147.com my1616.net +my22.art my22.fun my22.info my2852.com @@ -71381,7 +70596,6 @@ myimis.com myip.la myiplay.com myir-tech.com -myiroom.com myirtech.com myitit.com myityun.com @@ -71391,7 +70605,6 @@ myjiedian.com myjob.com myjob500.com myjoy777.com -myjql.com myjujing.com myk3.com mykarry.com @@ -71399,7 +70612,7 @@ mykd.cc mykeeta.com mykqyy.com mykscdn.com -mykshow.com +mykuaidi.com mykuaiji.com mylbabao.com mylguoji.com @@ -71446,7 +70659,6 @@ myopenwrt.org myoppo.com myorbita.net myottad.com -myouba.com myouhua.com myouth.net myp17.com @@ -71473,7 +70685,6 @@ myqqdd.com myqqjd.com myr9.com myra2.com -myrainbowacres.com myrb.net myreadcloud.com myreadme.com @@ -71481,7 +70692,6 @@ myrice.com myrightone.com myroome.com myrqjt.com -myrrcar.com myrtb.net myrunners.com mysbaojie.com @@ -71548,7 +70758,6 @@ myuclass.com myujob.com myun.tv myunke.com -myunying.com myusmile.online myvipsalon.com myvs.download.prss.microsoft.com @@ -71560,7 +70769,6 @@ myweb888.com myweimai.com mywhh.com mywinch.com -mywingcarpet.com mywirebox.com mywll.com mywood.cc @@ -71589,7 +70797,6 @@ myzxsx.com myzxyy.com myzyy.com myzyzy.com -mz-oneacg.com mz186.com mz52.com mz6.net @@ -71643,7 +70850,6 @@ mzty.com mztzzx.com mzuimg.net mzwu.com -mzxjzp.com mzxstar.com mzxun.com mzy0.com @@ -71724,6 +70930,7 @@ naitta.com naiveadmin.com naiveblue.com naiwch.com +naixi.com naixuecha.com naiyouxuexi.com najingtech.com @@ -71820,13 +71027,12 @@ nanjingelectric.com nanjinggaopeng.com nanjinghuihe.com nanjinghuojia.net -nanjingkaishan.com nanjingludeng.com nanjingtianqi114.com nanjingttym.com nanjingxinxu.com nanjingyinuo.com -nanjingzyhb.com +nanjix.net nanjixiong.com nankaimba.org nanke91.com @@ -71888,7 +71094,6 @@ nanxinwang.com nanxueqx.com nanxunfb.com nanyangcable.com -nanyangcn.net nanyangdianlan.com nanyangzb.com nanyinwealth.com @@ -71896,7 +71101,6 @@ nanyuecloud.com nanyuenews.com nanyuetong.com nanzao.com -nanzhao1.com nanzhougroup.com naobaocun.com naobiao.com @@ -71988,7 +71192,6 @@ nb-bailing.com nb-jf.com nb-jiale.com nb-medicalsystem.com -nb0817.com nb160.com nb591.com nba98k.com @@ -72124,7 +71327,6 @@ nbuci.com nbudp.com nbunicom.com nbuser.com -nbvn.com nbvps.net nbwaf.net nbwan.net @@ -72151,13 +71353,11 @@ nbzhongxin.com nbzhuzhai.com nbzjpc.com nbzsq.com -nbztfx.com nbzxgj.com nbzyenergy.com nc-bio.com nc189.net nc530.com -ncacg.org ncarzone.com ncawzs.com ncboo.com @@ -72292,6 +71492,7 @@ neihancommunity.com neihancommunity.net neihandiantai.com neihanfly.com +neihang.net neihanshequ.com neimaowang.com neimenggugames.com @@ -72360,6 +71561,7 @@ nestgene.com nestlechinese.com nesyouxi.net net-add.com +net-measure.net net-rope.com net-sharp.com net-swift.com @@ -72482,7 +71684,6 @@ newcoder.com newcosemi.com newdao.net newday.me -newdon.net newdreamgroup.com newdroid.net newdruginfo.com @@ -72649,7 +71850,6 @@ nflchina.com nflsxl.com nfmedia.com nfmrtfv.com -nfmz168.com nfnews.com nfpeople.com nfqbyp.com @@ -72728,8 +71928,6 @@ nhfyyy.com nhganggeban.com nhhongyi.com nhjjlt.com -nhjn788.fun -nhjnw78.fun nhkaiyang.com nhlq.com nhmuni.com @@ -72751,7 +71949,6 @@ ni8.com ni93.com nianbin.com nianchu.net -nianhua.plus nianhuawan.com niankawang.com nianlia.com @@ -72814,7 +72011,6 @@ nics365.com nicsbuy.com nicwind.com nidecms.com -nidekash.com nidiandaojia.com nie.io nieapps.com @@ -72836,6 +72032,7 @@ nihaotv.net nihaotw.com nihaowang.com nihil.cc +nihonngo.site nihuwo.asia niiam.com niiceda.com @@ -72897,7 +72094,6 @@ ningkekeji.com ninglutech.com ningma.com ningmengdou.com -ningmengsdfysdn.com ningmengyun.com ningshing.com ningtingche.com @@ -73019,7 +72215,6 @@ nj-hr.com nj-huaqiang.com nj-hust.com nj-jp.com -nj-jtjx.com nj-jy.com nj-kejin.com nj-kk.com @@ -73326,7 +72521,6 @@ njnii.com njningyi.com njnkxt.com njnkzz.com -njnlbmcl.com njnpfl.com njntdj.com njnwyy.com @@ -73488,7 +72682,6 @@ njyouwin.com njypk.com njyqhj.com njyqmj.com -njyshb.com njyspharma.com njysw.com njytian.com @@ -73561,7 +72754,6 @@ nlteck.com nlttms.com nlww168.com nlxn.com -nlyiren.com nlypx.com nlyzzzxrmyy.com nlzpw.com @@ -73696,7 +72888,6 @@ nndayuan.com nnddssaaddeeyy.com nnddxd.com nndegas.com -nndgzx.com nndianya.com nndims.com nndj168.com @@ -73745,7 +72936,6 @@ nnhbsl.com nnhccc.com nnhccl.com nnhcszc.com -nnhdkj.com nnhdzc.com nnhengfu.com nnhh8.com @@ -73821,6 +73011,7 @@ nnkeruan.com nnkeyuan.com nnkhjq.com nnkin.com +nnkj77.com nnkqfs.com nnkxnz.com nnlanfang.com @@ -73846,7 +73037,6 @@ nnmhzc.com nnminghe.com nnmingyuanyun.com nnmjm.com -nnmov.com nnmsjdgs.com nnmutong.com nnmwsy.com @@ -73962,7 +73152,6 @@ nnxqy.com nnxsypco.com nnxt.net nnxxzl.com -nnyarun.com nnybf.com nnybskq.com nnych.com @@ -73993,7 +73182,6 @@ nnzgkj.com nnzhaoguan.com nnzhenyukj.com nnzhnm.com -nnzhp.com nnzhuoli.com nnzjjckj.com nnzjqc.com @@ -74046,7 +73234,6 @@ nodekey.com nodeme.site nodepacific.com nodpcba.com -nodrylake.com noeic.com nohup.cc noipto.host @@ -74121,7 +73308,6 @@ noobyy.com noobzz.net noodba.com noogel.xyz -nooiah.com noontec.com noops.me nooshen.com @@ -74221,7 +73407,6 @@ nowre.com nows.fun nowscore.com nowtop.net -nowwon.xyz nowxz.com noxgroup.com noxxxx.com @@ -74320,7 +73505,6 @@ nsisfans.com nskfagcn.com nsknsk.com nskwj.com -nslifang.com nsm-electrical.com nsmodel.com nsmovie.com @@ -74350,6 +73534,7 @@ nsydt.com nsynu.com nszmz.com nszxsyxx.com +nszynd66ggbcx.com nt.app nt.cc nt56.net @@ -74426,7 +73611,6 @@ ntyodspt.net ntyswlkj.com ntyy888.com ntzhcs.com -ntzxkj.com nu1l.com nu36.vip nuan.chat @@ -74517,7 +73701,6 @@ nutzam.com nuvoltatech.com nuvoton-m0.com nuvoton-mcu.com -nuwtri.xyz nuxtv.com nuxue.com nuyoahbk.com @@ -74558,17 +73741,14 @@ nx.cm nx5.com nxadmin.com nxcells.com -nxcm.cc nxcrb.com nxdiaosu.com nxdns.net -nxecaiji.com nxeduyun.com nxengine.com nxez.com nxgangyi.com nxgjbyy.com -nxgqt.org nxgtjt.com nxgyzb.com nxhongshanhe.com @@ -74626,14 +73806,12 @@ nybw.net nyckidsclub.com nyd7y.com nydsrrsh.com -nyedu.net nyefy.com nyfzx.com nygczx.com nyhnx.com nyhpyq.com nyjvbs.xyz -nylhck.xyz nylingshang.com nylon-pussies.com nymrx.com @@ -74670,6 +73848,7 @@ nzghotel.com nzhnb.com nziku.com nzkd.com +nzlw.com nzmice.com nzpzi0y.xyz nzqyowk.com @@ -74726,6 +73905,7 @@ oa8858.com oaavv.com oabc.cc oabg.net +oachee.com oacrm.com oact.net oadz.com @@ -74734,9 +73914,7 @@ oahelp.com oahelp.net oaimai.com oait360.com -oajdsr.xyz oak-amc.com -oaklandjs.com oaloft.com oaloft.net oalur.com @@ -74753,7 +73931,6 @@ obagame.com obai.cc obaku.com obatsipilisjos.com -obd2sale.com obd2top.com obeishi.com obesu.com @@ -74892,7 +74069,6 @@ officemktuat.download.prss.microsoft.com officese.com officesoftcn.com officeweb365.com -officewj.com officezhushou.com officezy.com offodd.com @@ -74901,7 +74077,6 @@ offside.hk ofgame.net ofidc.com ofo.com -ofo2025.com ofopp.com ofpay.com ofpay365.com @@ -74955,9 +74130,9 @@ oilhr.com oilmooc.com oinbag.com oincp.com -oineed.com oinva5yl.com oioidesign.com +oioiok.com oioj.net oishi-tm.com oiwas.com @@ -74993,7 +74168,6 @@ okayapi.com okaybio.com okbao.com okbase.net -okbiao.com okbmf.com okbuy.com okcard.com @@ -75161,6 +74335,7 @@ oneasp.com onebash.com onebiji.com onebox.site +onebuygz.com onecoder.site oneconnectft.com onedi.net @@ -75187,7 +74362,6 @@ oneleafchina.com onelife-love.com onelinkplus.com onelnk.com -onemob.mobi onemtservers.com onenice.tech oneniceapp.com @@ -75214,7 +74388,6 @@ onethingpcs.com onethingtech.net onetop.net onetts.com -onetwo.ren oneuedu.com onev.cat onevcat.com @@ -75436,7 +74609,6 @@ opsapp.com opshields.com opskb.com opskumu.com -opsnote.com opstatics.com opstatistics.com opstool.com @@ -75461,7 +74633,6 @@ opython.com oqrstu.com oqss.com or-sun.com -or77.net oracle-tencent.com oracle-tencent.net oraev.com @@ -75493,6 +74664,7 @@ orcony.com ordchaos.com ordedr.com orderorigin.com +ordinaryroad.tech ordosbank.com ordosqyjt.com ordostonghui.com @@ -75546,7 +74718,6 @@ oriza.com orjlight.com orleto.com orm-compressor.com -orologiomgitaly.com orsoon.com orspr.com orstatic.com @@ -75776,7 +74947,6 @@ ourwebpic.info ourwebpic.net ourwebpic.org ourwebpicvip.com -ourxun.com ouryao.com ousaikj.com oushangstyle.com @@ -75784,7 +74954,6 @@ oushidiban.net oushinet.com oushisheng.com oushivoyages.com -oushiyimulayou.com ousweixin.com outerinfo.com outes.com @@ -75970,16 +75139,15 @@ pagetu.com pahou.com pahx.com pahys.com +pai.video paiago.com paiangmedical.com paiangstudy.com paibanxia.com paibaohy.com -paicc.com paichen.net paichi.com paidai.com -paidai.org paidui.com paiduidai.com paigepian.com @@ -75988,7 +75156,6 @@ paihang360.com paihang8.com paihb.com paihotels.cc -paike360.com paikew.com paiky.com paiky.net @@ -75999,7 +75166,6 @@ paime.com paiming.net paintinghere.org paints.market -paiorg.com paipai.com paipai123.com paipaibang.com @@ -76220,8 +75386,8 @@ papazw.com papegames.com paper-translation.com paper.tv -paper027.com paper120.net +paperang.com paperask.com paperbert.com paperbus.com @@ -76294,6 +75460,8 @@ pashu5.org pasos2.com pass7.cc passer-by.com +passfab.com +passfab.tw passion120.com passiongroupltd.com passwordkeyboard.com @@ -76481,7 +75649,6 @@ pdf1122.com pdfangchan.com pdfbianji.com pdfdo.com -pdfdowell.com pdfexpert.cc pdffsy.com pdfjia.com @@ -76493,11 +75660,11 @@ pdgzf.com pdhr.com pdidc.com pdie-expo.com -pdim.gs pdinvestmentgroup.com pdlib.com pdlnn.com pdloscar.com +pdnob.com pdosgk.com pdrcfw.com pdreading.com @@ -76523,7 +75690,6 @@ pe.vc pe314.com pe8.com pe898.com -peace-monkey.com peace-read.com peacebird.com peaceboat.net @@ -76582,6 +75748,7 @@ peixunla.com peixunmatou.com peixunxue.com peiyake.com +peiyicha.com peiyin.net peiyinge.com peiyingefiles.com @@ -76603,9 +75770,7 @@ pelorseating.com pemap.com pemch.com penavicoxm.com -penbbs.com pending-renewal-domain.com -pendoapp.com pengbaoxuan.com pengboguandao.com pengchengenergy.com @@ -76667,7 +75832,6 @@ peoplerail.com peoplewang.com peopleyuqing.com pepresource.com -pepsidns.cc pepsimeipai.com pepsitmall.com peptide-china.com @@ -76712,7 +75876,6 @@ petope.com petpcb.com petpetin.com petrexchina.com -petrobest.com petroren.com petrostaroil.com petrvet.com @@ -76727,7 +75890,6 @@ pf178.com pfcexpress.com pfhoo.com pfinno.com -pfmcchina.org pfmmedicalchina.com pft12301.cc pftianshanno.com @@ -76741,7 +75903,6 @@ pgc.tv pgcaststone.com pgcog.com pggho.com -pghsd88.com pgidp.com pgidw.com pgive.com @@ -76760,6 +75921,7 @@ pgsql.tech pgxqw.net pgxxw.com pgy6.com +pgyapi.com pgyer.com pgyidc.com pgyy.com @@ -76804,6 +75966,7 @@ philipswechat.com philisense.com philsalgi.net phirda.com +phirs.com phjqs.com phjt.com phlexing.com @@ -76839,7 +76002,6 @@ photo889.com photocnc.com photocome.com photohn.com -photoint.net photoncounts.com photonpay.com photops.com @@ -76870,9 +76032,9 @@ phphub.org phpjiami.com phpjiayuan.com phpkaiyuancms.com +phpks.com phplife.net phpor.net -phprnu.com phpsong.com phpspider.org phpstat.net @@ -76909,7 +76071,6 @@ piantou.net pianyilo.com pianyit.com pianyiwan.com -pianziweb.com piao.com piao.tips piao88.com @@ -76998,7 +76159,6 @@ pigbt.com pigcms.com pighaihe.com pigji.com -pigjian.com pigmentlc.com pigonline.org pigsty.cc @@ -77022,7 +76182,6 @@ pimax.com pimei.com pimspeak.com pin-color.net -pin-qu.com pin0312.com pin18pin.com pin2eat.com @@ -77112,7 +76271,6 @@ pingxuan123.com pingxue.net pingxx.com pingyin.cc -pingyin365.com pingyou.cc pingzishuo.com pinhaohuo.com @@ -77124,7 +76282,6 @@ pinjiaolian.com pinjie.cc pinjieqicai.com pinjiesj.com -pinjinholdings.com pinkecity.com pinkehao.com pinkertech.com @@ -77141,7 +76298,6 @@ pinpai.biz pinpai1.com pinpai37.com pinpai9999.com -pinpaidadao.com pinpaihuoyuan.com pinpailiu.com pinpaime.com @@ -77173,7 +76329,6 @@ pinzhenglh.com pinzhi.org pinzhi365.com pinzhikeji.net -pinzhitech.com pinzs.com pioneer-pharma.com pioneer-pku.com @@ -77229,7 +76384,6 @@ pj50.com pj57.com pjb9gv9.xyz pjbest.com -pjche.com pjcn.org pjf.name pjgear.com @@ -77330,11 +76484,13 @@ plateno.cc plateno.com platenogroup.com platform-cn.com +platform.dell.com platinum-traveller.com platinumchina.com play-analytics.com play-cdn10.com play-cdn11.com +play-cdn13.com play-cdn14.com play-cdn16.com play-cdn20.com @@ -77465,7 +76621,6 @@ pnfq.com png.pub pngbag.com pngsucai.com -pnkzg.com pnol.net pnshicha.com pnst8.com @@ -77521,7 +76676,7 @@ pokemon.vip pokerbros.net pokermate.net poketb.com -poketrg.com +polamus.com polaris-vc.com polariton.life polars.cc @@ -77606,7 +76761,6 @@ poputar.com popziti.com poration-vac-tech.com porlockz.com -porquesifiestas.com port-m.com portcontainer.com porthebei.com @@ -77718,7 +76872,6 @@ pp63.com pp77.com pp8.com pp918.com -pp9kk.com pp9l.com ppad.com ppaie.com @@ -77737,9 +76890,9 @@ ppdd.com ppdesk.com ppdqk.com ppduck.com +ppdys.vip ppfeng.com ppforging.com -ppfsnzp.com ppfu3m.com ppgallery.com ppgame.com @@ -77810,7 +76963,6 @@ ppter8.com ppthi-hoo.com pptianliao.com pptiyu.com -pptjia.com pptkj.net pptmall.net pptmao.com @@ -77849,7 +77001,6 @@ ppxstatic.com ppxsw.co ppxvod.com ppxwo.com -ppxyy.com ppzhan.com ppzhilian.com ppzuche.com @@ -78044,8 +77195,6 @@ ptfish.com ptfish.org ptgcn.com pthb668.com -pthc1.com -pthc8.com pthceshi.com pthejzb.com pthksw.com @@ -78078,6 +77227,7 @@ ptxyrcw.com ptxz.com ptyg.com ptyly.com +ptyoubike.com ptyqm.com ptyx.com pu-bg.com @@ -78089,7 +77239,6 @@ puaas.com puai999.com puaihospital.net puamap.com -puasu.com puata.info pubbcsapp.com pubchn.com @@ -78112,7 +77261,6 @@ pubyun.com pubyun.net pubyun.org pucijiankang.com -pucms.com pudding.cc pudetouzi.com pudie.net @@ -78254,6 +77402,7 @@ pw1999.com pw65.cc pw88.com pwand.com +pwdding.icu pwjptdg.xyz pwjt.com pwkss.com @@ -78331,7 +77480,6 @@ pyou.com pysdsysc.com pyshszh.com pyskl.com -pysrsks.com pysshyy.com pystar.com pyt2021.com @@ -78428,6 +77576,7 @@ qakkan.vip qalex.com qamemc.com qapi.cc +qaqa555.com qaqgame.com qaros.com qast.com @@ -78439,6 +77588,7 @@ qaynak.com qazasd.com qazdsa.com qazso.com +qaztool.com qazxsdc.com qbangmang.com qbao.cc @@ -78471,7 +77621,6 @@ qc-hr.com qc-shanghaipathology.com qc101.com qc188.com -qc1h.com qc6.com qc99.com qcaipiao.com @@ -78559,13 +77708,13 @@ qcwlseo.com qcwp.com qcwxjs.com qcwz8.com -qcxld.com qcxrby.com qcxs.com qcxzls.com qcy.com qcymall.com qcyoung.com +qcyuns.com qczb.app qczj.xyz qd-dy.com @@ -78601,7 +77750,6 @@ qdcz.com qdd.gd qdd.gg qdd.la -qddeyuan.com qddfxfpx.com qddlchb.com qddown.com @@ -78611,8 +77759,6 @@ qdeastsea.net qdedu.net qderzhong.net qdexam.com -qdf0605.com -qdfaer.com qdfik.com qdfnscy.com qdfuer.com @@ -78709,7 +77855,6 @@ qdxhs.vip qdxrhg.com qdxtcw.com qdycdx.com -qdyckj.com qdyijiamei.com qdyiyi.com qdyuzhengtang.com @@ -78731,7 +77876,6 @@ qeebike.com qeecc.com qeejoo.com qeeka.com -qeelai.com qeeniao.com qeerd.com qefee.com @@ -78758,11 +77902,12 @@ qfbio.com qfbwcd.xyz qfcgroup.com qfclo.com +qfdeng.com +qfdengn.com qfedu.com qfeiche.com qfiee.com qfihdr.com -qflyw.net qfns1.com qfpay.com qfpq.com @@ -78796,7 +77941,6 @@ qgqc.shop qgqy.com qgren.com qgsydw.com -qgtong.com qgtql.com qgvps.com qgw.tm @@ -78812,7 +77956,6 @@ qh-cdn.com qh-dl.com qh-hospital.org qh-lb.com -qh-opto.com qh24.com qh4321.com qh6bc.com @@ -78900,7 +78043,6 @@ qhtui.com qhtycp.com qhtyzx.com qhupdate.com -qhwgz.com qhwmw.com qhwptyn.com qhwww.com @@ -78955,7 +78097,6 @@ qiandaqian.com qiandaren.com qiandd.com qiandeups.com -qiandianyf.com qianduan.com qianduanheidong.com qiandw.com @@ -79018,7 +78159,6 @@ qianlht.com qianliao.net qianliao.tv qianliaowang.com -qianlidianji.com qianliht.com qianliii.com qianlima.com @@ -79055,7 +78195,6 @@ qianselight.com qianshanren.com qianshengqian.com qianshuixing.com -qianshuoshuo.com qiansiw.com qiant.net qiantangke.com @@ -79112,7 +78251,6 @@ qiaoclouds.com qiaodan.com qiaofangyun.com qiaofanxin.com -qiaofu.shop qiaoh.com qiaohewei.cc qiaohu.com @@ -79148,7 +78286,6 @@ qibazaixian.com qibingdaojia.com qibingwang.com qibo168.com -qibobang.com qiboleqipai.com qibosoft.com qibox.com @@ -79286,14 +78423,12 @@ qijiadianzi.com qijian99.com qijianzs.com qijiapay.com -qijiarui-test.com qijiayoudao.net qijilvxing.com qijishow.com qijishu.com qijiyun.vip qijizuopin.com -qijoe.com qijuan.com qijucn.com qikan.com @@ -79349,7 +78484,6 @@ qimila.net qimila8.com qiming.tech qimingcx.com -qimingdao.com qimingjiang.com qimingpian.com qimingvc.com @@ -79415,6 +78549,7 @@ qingdaoshenghao.com qingdelan.com qingdou.ltd qingdou.net +qingdou.vip qingdouw.com qingf001.com qingfanqie.com @@ -79466,6 +78601,7 @@ qinglingvip.com qinglinong.com qinglm.com qinglongwood.com +qinglue.com qinglue.net qinglvpin.com qingly.ink @@ -79507,7 +78643,6 @@ qingsongchou.com qingsongjituan.com qingsonngxx.com qingstor.com -qingstorage.com qingsucai.com qingtajiao.com qingtaoke.com @@ -79525,7 +78660,6 @@ qingtingjh.com qingtingtrip.com qinguanjia.com qingui123.com -qinguishipin.com qinguoag.com qingwabs.com qingwk.com @@ -79585,7 +78719,6 @@ qinlake.com qinlaobo.com qinlaoke.net qinlinad.com -qinlingshui.com qinlinkeji.com qinms.com qinnongbank.com @@ -79691,7 +78824,6 @@ qiu-ai.com qiuball.com qiubiaoqing.com qiucinews.com -qiue21.com qiufaqf.com qiufengblog.com qiuhua.com @@ -79737,7 +78869,6 @@ qiuziti.com qiwang2025.com qiwangming.com qiwei.com -qiweido.com qiwenhui.com qiwenqi.com qiwenya.com @@ -79886,7 +79017,6 @@ qkisp.com qkkj88.com qkkjbj.com qkkjd.com -qkl123.com qkl234.com qknode.com qknown.com @@ -80017,7 +79147,6 @@ qnssl.com qntz.cc qnvipmall.com qnvipxd.com -qnvod.net qnw.cc qnydns.com qnydns.net @@ -80105,7 +79234,6 @@ qqddc.com qqdiannao.com qqdiannaoguanjiadl.com qqdna.com -qqdwz.com qqdzzb.win qqe2.com qqeml.com @@ -80158,7 +79286,6 @@ qqor.com qqpao.com qqpharm.com qqpifu.com -qqpj.org qqppt.com qqq.tv qqq937.com @@ -80169,7 +79296,6 @@ qqqooo.com qqrain.com qqread.com qqrer.com -qqride.com qqrizhi.com qqro.com qqryt111.fun @@ -80195,13 +79321,11 @@ qqtest.com qqtf.com qqthj.com qqtjmgg.com -qqtkw.cc qqtlr.com qqtouxiangzq.com qqts.net qqtu8.cc qqtu8.com -qqtxt.cc qqtz.com qquanquan.com qqumall.com @@ -80224,7 +79348,6 @@ qqxsnew.net qqxsnew5.com qqxsw.co qqxx.net -qqxy100.com qqxzb-img.com qqxzb.com qqy189.com @@ -80235,7 +79358,6 @@ qqyn.com qqyouju.com qqywf.com qqyy.com -qqz7.com qqzby.net qqzfw.com qqzhi.com @@ -80255,6 +79377,7 @@ qrcpu.com qrfq25sg.xyz qrgiant.com qrmanhua.com +qrprt.com qrsvm.com qrtest.com qrtz.co @@ -80377,6 +79500,7 @@ qu2345.com qu247.com qu67.com qua.com +quaita.com qualcomm-challenge.com qualcomm.cn.cdn.cloudflare.net qualtekgz.com @@ -80470,7 +79594,6 @@ quartzhy.com quasarchs.com quazero.com quba360.com -qubaidu.net qubaike.com qubaobei.com qubiankeji.com @@ -80748,7 +79871,6 @@ quguonet.com quhaidiao.com quheqihuo.com quhua.com -quhuangye.com quhuaxue.com quhuhao.com quhuichang.net @@ -80830,7 +79952,6 @@ qunhaohotel.com qunhaolawfirm.com qunhei.com qunhequnhe.com -qunhuisp.com qunjielong.com qunke.com qunkeng.com @@ -80850,7 +79971,6 @@ qunxingvc.com qunxinzdh.com qunyaninfo.com qunyingkeji.com -qunyouxuan.com qunzh.com qunzhuquan.com qunzou.com @@ -80902,6 +80022,7 @@ quxianchang.com quxiang.work quxianzhuan.com quxingdong.com +quxintiaodong.com quxiu.com quxuan.com quyangyizhong.com @@ -81023,9 +80144,7 @@ qy-qq.com qy.com qy.net qy266.com -qy2s.com qy57.com -qy58w.com qy6.com qyaninfo.com qybc.com @@ -81116,7 +80235,6 @@ qzbhgyl.com qzbhzy.com qzbuxi.com qzbwjx.com -qzbykq.com qzccbank.com qzchuxing.com qzcia.com @@ -81131,12 +80249,10 @@ qzdswy.com qzdxcj888.com qzdyyy.com qzesx.net -qzeva.com qzeyy.com qzfwckj.com qzg123.com qzgc.net -qzgcdl.com qzgchj.com qzgfyy.com qzgjjp.com @@ -81191,7 +80307,6 @@ qzone.cc qzone.com qzoneapp.com qzonei.com -qzp666.com qzqcfw.com qzqcw.com qzqiye.com @@ -81220,6 +80335,7 @@ qzsyy.com qzszyy.com qzt520.com qztc.vip +qztingche.com qztour.com qztsecurity.com qztszls.com @@ -81246,7 +80362,6 @@ qzzhedu.com qzzhonghan.com qzzhwk.com qzzjchy.com -qzzljx.com qzzn.com qzzpw.net qzzres.com @@ -81265,7 +80380,6 @@ r220.cc r2coding.com r2yx.com r302.cc -r3lhl.com r435.com r51.net r5g.cc @@ -81437,7 +80551,6 @@ rayrjx.com rayseasc.com raysgo.com raysilicon.com -rayspower.com raystek-p.com raystesting.com raysync.cloud @@ -81482,7 +80595,6 @@ rcads.net rcaiv.com rcbc888.com rcbuying.com -rcbxsr.xyz rccaijing.com rccchina.com rcche.com @@ -81580,7 +80692,6 @@ readhb.com readhr360.com readhub.me readke.com -readlady.com readlevel.com readlink.com readlishi.com @@ -81664,7 +80775,6 @@ redianyuansu.com redianyule.com redianzixun.com rediao.com -redicecn.com redidc.com redisfans.com redmagic.com @@ -81887,7 +80997,6 @@ reportrc.com reprogenix.com reptilesworld.com reqable.com -reqwevf3.fun rergdfh.com reryt111.fun reseetech.com @@ -81917,11 +81026,9 @@ revenuads.com revenuenetwork.com reviosky.com revolut.ltd -revy.asia rew65.com rewnat.xyz reworlder.com -rewrwrt4.fun rewuwang.com rexcdn.com rexdf.org @@ -81988,6 +81095,7 @@ rhexe.com rhhz.net rhine-inc.com rhinosgamestwhk.com +rhinoxky.com rhkj.com rhky.com rhnewmaterials.com @@ -82106,6 +81214,7 @@ risun.com riswing.com ritaichina.com ritao.hk +ritaojiang.com ritaomeng.com ritarpower.com ritering.com @@ -82163,7 +81272,6 @@ rjxzjx.com rjzxw.com rk-light.com rk120.com -rk6h3.icu rkanr.com rkaq110.com rkckth.com @@ -82176,7 +81284,6 @@ rklive888.com rklzpo.com rksec.com rkvir.com -rkwxfi.xyz rkzxhyy.com rl-consult.com rl-seo.com @@ -82210,7 +81317,6 @@ rmjiaju.com rmjtxw.com rmnof.com rmny.tech -rmoxl.com rmrbwc.com rmrun.com rmsznet.com @@ -82232,7 +81338,6 @@ rnhospital.com rnhy.net rnmachine.com rnmgn.net -rnw7f6jfk8.vip ro.com ro50.com road-group.com @@ -82247,6 +81352,7 @@ roaing.com robam.com robei.com roboeyeai.com +robomaster.com roboo.com robook.com robopeak.net @@ -82312,6 +81418,7 @@ romielf.com romjd.com romleyuan.com romney-lighting.com +romo.tech romonupark.com romzhijia.net romzj.com @@ -82414,7 +81521,6 @@ roouoo.com ropefitting.com ropinsite.com roqairs.com -roqwq.com ror-game.com rorotoo.com ros-lab.com @@ -82483,7 +81589,6 @@ rpfbzjam.shop rpfieldcdn.com rpg99.com rpgmoba.com -rphbnm.com rpo5156.com rq.run rqb99.com @@ -82526,7 +81631,6 @@ rrsurg.com rrswl.com rrting.net rrtv.vip -rruu.com rrwtp.com rrxf.online rrxh5.cc @@ -82534,7 +81638,6 @@ rrxiu.cc rrxiu.me rrxiu.net rrxiuh5.cc -rrys.net rrys.tv rrzsb.com rrzu.com @@ -82553,6 +81656,7 @@ rsdxjd.com rsdyy.com rsdznjj.com rsfang.net +rsfcxq.com rshao.com rshaoapp.com rshdsz.com @@ -82563,7 +81667,6 @@ rsjytx.com rskjx.com rsl.cc rslg-china.com -rslicai.com rsm.download.prss.microsoft.com rsnmxd.com rsnschina.com @@ -82604,6 +81707,7 @@ rtbasia.com rtbbox.com rtbpb.com rtbtmc.com +rtbwave.com rtc-web.com rtc-web.io rtcdeveloper.com @@ -82695,7 +81799,6 @@ ruguoapp.com ruguojiaoyu.com ruhaivip.com ruhnn.com -ruhousw.com rui.plus ruian.com ruianfang.com @@ -82758,7 +81861,6 @@ ruipai.com ruipengkeji.com ruipengpet.com ruipupharma.com -ruisaier.com ruiscz.com ruisheng.cc ruishengseal.com @@ -82823,7 +81925,6 @@ runca.net runcmd.com runcobo.com runcome.com -runda8888.com rundamedical.com rundapv.com runde666.net @@ -82840,7 +81941,6 @@ runhengfdc.com runhuayou.biz runjf.com runjian.com -runjiandianqi.com runjiapp.com runkodo.com runkunoptics.com @@ -82883,13 +81983,13 @@ ruohang.com ruohuo.net ruokuai.com ruonei.com +ruons.com ruoren.com ruoshui.com ruosoft.com ruoxia.com ruoyer.com ruoyi.vip -ruoyunwang.com ruozedata.com ruozhu.shop ruqimobility.com @@ -82916,6 +82016,7 @@ ruu6373.com ruubypay.com ruvar.com ruvisas.com +ruwen5.org ruxiaoyi.com ruyig.com ruyigou.com @@ -83040,8 +82141,6 @@ rzspx.com rzszp.com rzv5.com rzv7.com -rzwdny.com -rzweiqi.com rzx.me rzzyfw.com s-02.com @@ -83058,6 +82157,7 @@ s-yue.com s-zone.com s019.com s0599.com +s0nnet.com s10000.com s135.com s163.com @@ -83177,6 +82277,7 @@ sailingyun.com sailipaint.com sailongmetal.com sailungroup.com +sailunkeji.com sailuntire.com sailway-china.com saiminprecision.com @@ -83282,7 +82383,6 @@ sandbean.com sandcomp.com sandeepin.com sandegroup.com -sandeley.com sandinggas.com sandload.com sanduoyun.com @@ -83396,7 +82496,6 @@ sanshua.com sansitech.com sansky.net santaihu.com -santak-ups.com santanjob.com santelvxing.com santezjy.com @@ -83439,6 +82538,7 @@ sanyastar.com sanyasx.com sanyawater.com sanyecao.com +sanyegame.com sanyenet.com sanyewu.com sanyexin.com @@ -83469,7 +82569,6 @@ sanzinfo.com sanzkf.com sao-ma.com sao.ren -saogai.com saohua.com saoic.com saolife.com @@ -83553,6 +82652,7 @@ sbt-sh.com sbt123.com sbt56.com sbtjt.com +sbtzy.net sbwl.com sbwxz.com sbxh.org @@ -83637,7 +82737,6 @@ sccwz.com sccxbe.com sccyxh.com scdanzhao.net -scdazhuan.com scdbzzw.com scdccb.com scdcs.net @@ -84039,7 +83138,6 @@ scxdf.com scxinkang.com scxjyw.com scxsls.com -scxsrh.com scyanzu.com scyarui.com scybjc.com @@ -84047,6 +83145,7 @@ scybxx.com scyc.cc scych.org scyesz.com +scyf.xyz scylzx.net scymob.com scyongqin.com @@ -84149,7 +83248,6 @@ sdcqjy.com sdcqjyjt.com sdcxgk.com sdcxjl.com -sdcxsc.com sdcxslzj.com sdcyun.com sdcz.com @@ -84189,7 +83287,6 @@ sderp.com sdewj.com sdey.net sdeyei-h.edu -sdfcxw.com sdfeid.com sdfey.com sdffqaz.com @@ -84281,7 +83378,6 @@ sdhxem.com sdhxf.com sdhxjl.com sdhxsj.com -sdhycm.com sdhydl.com sdhynytc.com sdhzgs.com @@ -84472,7 +83568,6 @@ sdsmartlogistics.com sdsmefina.com sdspyyy.com sdsrhb.com -sdss99.fun sdssiliao.com sdstdc.com sdsteel.cc @@ -84492,7 +83587,6 @@ sdtaikai.com sdtcck.com sdtdata.com sdtdfz.com -sdtele.com sdteleiptv.com sdtender.com sdteya.com @@ -84604,7 +83698,6 @@ sdztxxkj.com sdzx.net sdzydfy.com sdzzdzkj.com -se25.xyz sea-group.org sea-gullmall.com seaarea.com @@ -84626,7 +83719,6 @@ sealeadbattery.com sealien.net sealimg.com sealos.run -sealui.com sealyun.com seamanhome.com seamaty.com @@ -84888,7 +83980,6 @@ senyao1718.com senyou.com senyuanhi.com senyuanzhonggong.com -seo-820.com seo-lv.com seo.tm seo1158.com @@ -84902,7 +83993,6 @@ seodaniel.com seofangfa.com seoipo.com seokoubei.com -seonb8.com seopath.net seopre.com seoqx.com @@ -84916,7 +84006,6 @@ seoxiaoxin.com seoxuetang.com sep.cc sepact.com -sepahbourse.com sepcc.com sepco1.com sepfocus.com @@ -84965,7 +84054,6 @@ sevnz.com sewise.com sexytea2013.com sey.ink -seyaose.net seyoo.net seyuma-cn.com sf-airlines.com @@ -84990,6 +84078,7 @@ sf-zs.net sf007.com sf024.com sf0jm.xyz +sf2021.com sf34.com sf888.net sfacg.com @@ -85009,7 +84098,6 @@ sfdrums.com sfdy13168.com sfdzh.com sfecr.com -sfesdef6.fun sffdj.com sfgj.org sfgroup.cc @@ -85057,7 +84145,6 @@ sfwxf.com sfy-gmc.com sfyb.com sfybee.com -sfybuyi.com sfydns.com sfygroup.com sfys365.com @@ -85108,7 +84195,6 @@ sgmw.com sgmwlu.com sgmwsales.com sgnet.cc -sgnongkang.com sgou.com sgpjbg.com sgplink.xyz @@ -85127,7 +84213,6 @@ sgsyxx.net sgt21.com sgthzb.com sgtmos.com -sgtsglb.com sguo.com sgvalve.com sgvbot.com @@ -85162,7 +84247,6 @@ sh-datastone.com sh-deem.com sh-delixi.com sh-desu.com -sh-dgvalve.com sh-dongbiao.com sh-eastwes.com sh-edi.com @@ -85276,6 +84360,7 @@ sha-steel-yx.com sha-steel.com sha2777.com sha990.com +shaaidata.com shaangu.com shaanxigas.com shaanxiiot.com @@ -85327,6 +84412,7 @@ shandacasual.net shandagames.com shandaz.com shandechina.xin +shandian666.com shandiandaili.com shandiangou.com shandianhuifu.com @@ -85349,7 +84435,6 @@ shandonglanhua.com shandongqinuo.com shandongruyi.com shandongsannong.com -shandongsilk.com shandongtianmai.com shandongyunpin.com shandw.com @@ -85390,7 +84475,6 @@ shangdiguo.com shangdixinxi.com shangdu.com shangdu.info -shangeedu.com shangeyun.com shangfang56.com shangfenbao.com @@ -85473,7 +84557,6 @@ shanghaixuejia.com shanghaiyinyang.com shanghaiyk.com shanghaiyouxi.com -shanghaiyuqiang.com shanghaizhaxinhospital.com shanghaizhenji.com shanghcat.com @@ -85539,10 +84622,8 @@ shangxueba.com shangyejihua.com shangyekj.com shangyexinzhi.com -shangyijs.com shangyouze.com shangyu-marathon.com -shangyuan.ltd shangyuan029.com shangyubank.com shangyuer.com @@ -85834,7 +84915,6 @@ shebao.net shebao100.com shebao5.com shebao520.com -shebaodata.com shebaomi.com shebaotong.com shebaowang.com @@ -85842,7 +84922,6 @@ shebaozhaopian.com shebiaotm.com sheboo.com sheca.com -shechipinshop.com shedejie.com shedongyun.com shedoor.com @@ -85935,7 +85014,6 @@ shengenqianzheng.com shengenv.com shengfajiaohua.com shengfanwang.com -shenggift.com shenghan.org shenghefilms.com shengheplastic.com @@ -86037,7 +85115,6 @@ shenmadsp.com shenmapay.com shenmayouxi.com shenmeipharm.com -shenmezhidexia.com shenmikj.com shenmo.com shenmojiaoyu.com @@ -86194,7 +85271,6 @@ shgsec.com shgsic.com shgskj.com shgtheatre.com -shguanmai.com shgushi.com shgyg.com shgymy.com @@ -86209,7 +85285,6 @@ shhebio.com shhella.com shhenghesh.com shheywow.com -shhgzf.com shhic.com shhigher.com shhiminhm.com @@ -86341,7 +85416,6 @@ shijihulian.com shijiong.com shijiqingqing.com shijiretailo2o.com -shijitailai.com shijiudao.com shijiufang.com shijqq.com @@ -86482,7 +85556,6 @@ shitac.net shitairen.com shiti.net shitianxia.vip -shitibaodian.com shitoc.com shitou.com shitouboy.com @@ -86659,7 +85732,6 @@ shmog.org shmondial.com shms-expo.com shmtu.net -shmulan.com shmusic.org shmusicschool.com shmylike.com @@ -86680,7 +85752,6 @@ shoasisholding.com shobserver.com shockerli.net shockley-elect.com -shodbj.com shoegaze.com shoeshr.com shofine.com @@ -86867,7 +85938,6 @@ shps518.com shpsncp.com shpyedu.com shqcplw.com -shqdjt.com shqec.com shqi7.net shqianbin.com @@ -86881,7 +85951,6 @@ shqncs.com shqpphschool.com shqpxc.com shqswlgs.com -shquantian.com shqunlu.com shqxjx.com shqyg.com @@ -86985,7 +86054,6 @@ shtimessquare.com shtion.com shtopshow.com shtour.org -shtpin.com shtqzs.com shtrhospital.com shtsn.com @@ -87136,7 +86204,6 @@ shuiguobang.com shuihulu.com shuihuoibm.com shuijing100.com -shuijingcn.com shuijingka.com shuijingwanwq.com shuijingwuyu.com @@ -87191,7 +86258,6 @@ shujulin.com shujupie.com shujutang.com shujuwa.net -shujuwu.com shujuxian1688.com shukeba.com shukeju.com @@ -87214,6 +86280,7 @@ shulex-voc.com shuliangtec.com shuliao.com shulidata.com +shuling.vip shulink.com shuliyun.com shuma7.com @@ -87244,7 +86311,6 @@ shunderen.com shunfalighting.com shunfangw.com shunfeng.cc -shunfengche.org shunguang.com shunhaiwang.com shunhejieshui.com @@ -87257,7 +86323,6 @@ shunlitm.com shunmi.com shunnengnet.com shunnengoil.com -shunong.com shunqi.com shunscom.com shunshikj.com @@ -87270,7 +86335,6 @@ shunyagroup.com shunygroup.com shunyoubio.com shunyuwater.com -shuo66.com shuoba.org shuobao.com shuobozhaopin.com @@ -87282,7 +86346,6 @@ shuohong.net shuoji1688.com shuojuchaxu.com shuoman.com -shuomingshu.net shuomingshuku.com shuoniu.cc shuoshuojie.net @@ -87296,8 +86359,6 @@ shuozhiwu.com shupackaging.com shupaiyun.com shupeng.com -shupi.net -shupin.net shuq.net shuqi.com shuqiaozt.com @@ -87332,6 +86393,7 @@ shuwenxianyun.com shuwulou.com shuxiangmenhu.com shuxiangmuye.com +shuxiayun.com shuxinsp.com shuxinyc.com shuxuehua.com @@ -87449,7 +86511,6 @@ shykz123456.com shylwlkj.com shymhk.com shyndec.com -shyojin.com shyongci.com shyongwo.com shyongzeng.com @@ -87493,7 +86554,6 @@ shzfsy.com shzfzz.net shzgauto.com shzgd.org -shzgh.org shzgt56.com shzh.net shzhanling.com @@ -87545,6 +86605,7 @@ sibangde.com sibfi.com sibida.net sibinwave.com +sibojin.com sibpt.com sibuzyn.com sic8d.net @@ -87710,7 +86771,6 @@ simengqifu.com simglo.com simhaoka.com simiam.com -simiao.net simici3.com simicloud.com simij.com @@ -87724,7 +86784,6 @@ simon96.online simope.com simp.red simperfect.com -simple-is-better.com simplecreator.net simpledatas.com simplexue.com @@ -88083,7 +87142,6 @@ sitrigroup.com sitronics-sh.com situdata.com siud.com -siudz.com sivlab.com siwaman.com siweidaotu.com @@ -88131,7 +87189,6 @@ sj33.net sj3g.com sj51.net sj6rgxtjg3tmb.com -sj84.com sj998.com sjawards.com sjaz.com @@ -88446,7 +87503,6 @@ slashdevslashnetslashtun.net slatic.net slbauto.com slbiop.com -slbrucite.com slcad.com slchos.com slcyber.icu @@ -88678,6 +87734,7 @@ smshos.com smshx.com smskb.com smslk1.com +smslk2.com smslkcoffee.com smsot.com smsvifv.com @@ -88734,6 +87791,7 @@ smzdwan.com smzhongran.com smzjy.cc smzrmyy.com +smzsffb.com smzy.com sn-epe.com sn12333.com @@ -88785,6 +87843,7 @@ snedu.com sneducloud.com sneia.org snfic.com +snfox.com snfzsw.com sngct.com snh48.com @@ -88869,6 +87928,7 @@ so8848.com so9l.com soapphoto.com soar-chem.com +soargift.com soarpower.com soarwatch.com soaryoof.com @@ -88983,7 +88043,6 @@ sogou.net sogoucdn.com sogoucdndl.com sogouimecdn.com -sogouspider.com sogouw.com sogowan.com sogw.cc @@ -89046,7 +88105,6 @@ soldierstory-toys.com solelybio.com solepic.com soletower.com -soli.so soliao.com solidigm-asdf.com solidigm-zxcv.com @@ -89081,7 +88139,6 @@ somo.so somode.com somode.net somsds.com -somuchrain.com sonbest.com soncci.com song001.com @@ -89199,6 +88256,7 @@ sopaidea.com soperson.com sophgo.com sophgo.vip +sophnet.com sopic.org sopowcore.net sopraysolar.com @@ -89488,7 +88546,6 @@ spldlkj.com splendecor.com splmcn.com spmcn.com -spmyc.com spnchinaren.com spochikj.com spoience.com @@ -89557,6 +88614,7 @@ sqeatin.com sqezz.com sqfcw.com sqfgc.com +sqgg.cc sqggzy.com sqgwh.com sqhec.com @@ -89596,7 +88654,6 @@ squarecn.com squarefong.com squirrelboiler.com sqwenhua.com -sqwyhys.com sqxww.com sqyai.com sqyhw.com @@ -89697,9 +88754,7 @@ ssfei.com ssffx.com ssgedm.com ssgeek.com -ssggg.com ssgsemi.com -ssgxwq.com ssgz.com sshce.com sshr.net @@ -89742,7 +88797,6 @@ ssmc-sz.com ssmchina.org ssmec.com ssmedic.com -ssmeow.com ssmept.com ssmys.com ssmysh.com @@ -89872,6 +88926,7 @@ starhalo.mobi staringos.com starkai.com starlakelab.com +starlink.uno starlott.com starlu.com starm.cc @@ -89882,6 +88937,7 @@ starpack-group.com starpainters.net starpiao.com starrails.com +starrevs.com starrockinvest.com starrtc.com starrydyn.com @@ -89896,7 +88952,6 @@ starsino.com starsmicrosystem.com starsshine1.com starstech.cc -starsuki.net starswar.org startcarlife.com startcomca.net @@ -89913,13 +88968,11 @@ starwaycomm.com starworldgames.com starworldmacau.com starwsn.com -starxiiient.com starxn.com staryea.com stat-nba.com stat08.com stat18.com -stater-tc.com static.eprintsw.com static163.net staticaa.com @@ -89940,6 +88993,7 @@ stay-bullish.com staybrowser.com staycu.com stbieshu.com +stboy.com stbs100.com stc2002.com stcaimcu.com @@ -90035,7 +89089,6 @@ stonepoll.net stonescloud.com stonesm.com stoneu.com -stonewiki.com stonexp.com stor-age.com storage-asset.msi.com @@ -90070,6 +89123,7 @@ streamaxtech.com streamcomputing.com streamlakeapi.com streffy.com +strinova.com strong-light.com strong-study.com strongfc.com @@ -90127,10 +89181,8 @@ stwyxh.com stxfjs.com stxsw.com styadmin.com -stylar.hk stylecdn.com stylechina.com -stylecho.com stylemafiadaily.com styles-sys.com styst.net @@ -90148,7 +89200,6 @@ suanfazu.com suanguaju.com suanjiayun.com suanjuzi.com -suanlitou.com suanpin.com suansheng.com suanst.com @@ -90230,7 +89281,9 @@ sufangxu.com sufeinet.com sufoma.com sufont.com +sufycdn.com sugaov.com +sugar5.club sugarall365.com sugarenergy.com sugarguo.com @@ -90253,7 +89306,6 @@ suibao-jiaozhu.com suibao.com suibiji.com suibo.org -suigo.net suiji123.com suijinetworks.com suijunlaowu.com @@ -90409,7 +89461,6 @@ sunhepower.com sunhongs.com sunhospital.net sunhuhotel.com -sunhwee.com suninf.net suninfo.com suning.com @@ -90772,7 +89823,6 @@ svinsight.com svip5-applefix.com svip51.com svipdog.com -svipduihuan.com svipgulr.com sviping.com svlik.com @@ -90792,7 +89842,6 @@ sw0013.com sw163.com sw2008.com sw996.com -swad332.fun swakopuranium.com swanchemical.com swang8.com @@ -90802,7 +89851,6 @@ swanpowerstrip.com swanrov.com swaqds.com swarma.net -swarma.org swat-js.com swatou.com swbbsc.com @@ -90813,7 +89861,6 @@ swckc.com swdyz.com sweet-data.com sweetalkos.com -sweetdan.com sweetjing.cc sweetlove.cc sweetmartmarketing.com @@ -90843,7 +89890,6 @@ swip.group swirebev.com swirecocacola.com swisdom.cc -swissclonewatches.com swissgenie.com swissrepicass.com swissreplicamall.com @@ -90923,7 +89969,6 @@ sxcgzh.com sxchangshengjt.com sxcig.com sxcitygas.com -sxcjys.com sxclassiclighting.com sxcm.net sxcntv.com @@ -90939,7 +89984,6 @@ sxd408.com sxdagang.com sxddy.com sxdkj.com -sxdrkx.com sxds.com sxdygbjy.com sxdyrq.com @@ -91084,7 +90128,6 @@ sxsqyjxh.org sxsrmyy.com sxsslz.net sxssyh.com -sxstdl.com sxswfzjt.com sxsyyxh.com sxsyyxh.net @@ -91122,7 +90165,6 @@ sxxl.com sxxrmyy.com sxxsmjh.com sxxt.net -sxxtong.com sxxw.net sxxyfw.com sxxynews.com @@ -91163,7 +90205,6 @@ sy17.com sy1994.com sy1z.com sy2k.com -sy2mc.com sy2z.com sy3.com sy76.com @@ -91471,7 +90512,6 @@ sz315.org sz3dp.com sz3e.com sz3gao.com -sz5156.com sz56t.com sz5983.com sz7h.com @@ -91549,7 +90589,6 @@ szbrandweek.com szbryq.com szbubu.com szbwgy.com -szbym.com szbyzn.com szc-ic.com szc.com @@ -91623,13 +90662,13 @@ szdx189.com szdxexpo.com szdxfsrhyy.com szdy168.com -szdyx8.com szdz123.com szdzczp.com szeant.com szeastroc.com szeasyin.com szebus.net +szecowater.com szects.com szed.com szeds.com @@ -91669,7 +90708,6 @@ szfjt.com szfolo.com szforter.com szftfybj.com -szfty.net szftzx.net szftzy.com szfutong.com @@ -91829,14 +90867,12 @@ szjuyou.com szjxgroup.com szjxj.com szjy.cc -szjydzkj.com szjyos.com szjys.net szjys1888.com szjytx.com szjyxtech.com szjzdcjt.com -szkdsy.com szkdxx.com szkeda.com szkegao.net @@ -91885,6 +90921,7 @@ szlinglewangluo.com szlingsheng.com szlnjt.com szlnxh.com +szlongyu.com szlottery.org szlqjt.com szlsnk.com @@ -91952,7 +90989,6 @@ sznfwt.net szngdz.com szniego.com szniushi.com -szniute.com sznj91.com sznnhg.com szns-marathon.com @@ -91979,10 +91015,10 @@ szpclab.com szped.com szpengfa.net szpgm.com -szpiao.com szpiaoyi.com szpldq.net szpllp.com +szplus.com szpmi.org szporter.com szpowerfly.com @@ -92058,7 +91094,6 @@ szshutao.com szshwy.com szsia.com szsing.com -szsjhts.com szsjtjj.com szsjxxpt.com szskd.com @@ -92071,6 +91106,7 @@ szsnk.com szsnking.com szsoa.org szsolutia.com +szsongmao.com szsorch.com szsptk.com szsq.net @@ -92095,7 +91131,6 @@ szsupvan.com szswgcjc.com szswjc.com szswjs.com -szsyqcn.com szsyyxh.org szszjt.com szszlm.com @@ -92460,7 +91495,6 @@ taijio.com taijs.com taijudaquan.com taijutv.com -taijuwang.com taikaibyq.com taikaihuanbao.com taikancnc.com @@ -92477,6 +91511,7 @@ taikongmedia.com taikoohui.com taikoyc.com taikr.com +tailgdd.com tailingood.com tailixiangjiao.com taillkang.com @@ -92512,7 +91547,6 @@ taixi.cc taixigas.com taixingren.com taixirobot.com -taixsw.com taixubio.com taixuguoji.com taiyangd.com @@ -92608,7 +91642,6 @@ tangeche.com tangfc.com tanggu11g.com tangguobaohe.com -tangguoxian.com tanghu.net tanghushi.com tangjie.me @@ -92617,6 +91650,7 @@ tangkabj.com tanglei.name tangmi.net tangmingint.com +tangoic.com tangongye.com tangpai.cc tangping.com @@ -92627,7 +91661,6 @@ tangsanshu.com tangsem.com tangshan-marathon.com tangshanliulin.net -tangshijun.com tangshuang.net tangshui.net tangsongys.com @@ -92718,7 +91751,6 @@ taobeihai.com taobeike.com taobiaozu.com taobizhong.com -taobz.com taoc.cc taocange.com taocdn.com @@ -92765,6 +91797,7 @@ taohaowan.com taohhui.com taohua.com taohuang.com +taohuaqizhi.com taohuazu.net taohuazu.pw taohui.pub @@ -92848,7 +91881,6 @@ taoxiangyoushu.com taoxiaolu.com taoxie.com taoxie.com.tw -taoxuemei.com taoxv.com taoyi-support.com taoyi120.net @@ -92859,7 +91891,6 @@ taoyuanc.com taoyuewenhua.net taoyutaole.com taozaisheng.com -taozfu.com taozg.store taozhanyun.com taozhibook.com @@ -93026,7 +92057,6 @@ tcdnvod.com tcdnvodbak.com tcdnvp.com tcdushi.com -tcdxt.com tcecps.org tceic.com tceratronix.com @@ -93086,6 +92116,7 @@ tcnews.cc tcnvmms.com tcomall.com tcp.hk +tcp.pub tcping8.com tcqmj.com tcrcb.com @@ -93112,7 +92143,6 @@ tctz.com tcvywoh.com tcwcs.com tcwt.net -tcxfjc.com tcxmt.com tcxw.cc tcxwg.com @@ -93148,7 +92178,6 @@ tdgod.com tdiac.com tdict.com tdimg.com -tditor.com tdjxhb.com tdkchina.com tdmall.cc @@ -93511,7 +92540,6 @@ tensafe.com tenshi.cc tensorchip.com tensorflownews.com -tensornews.net tenstars.net tensuntrans.com tensynchina.com @@ -93592,7 +92620,6 @@ tezign.com tf-bm.com tf.wiki tf56.com -tf86.com tfauto.net tfax.com tfbestea.com @@ -93811,6 +92838,7 @@ thinkcmf.com thinkdid.com thinkdream.com thinkeridea.com +thinkerride.com thinkerx.com thinkindrupal.com thinkive.com @@ -94236,9 +93264,9 @@ tidesec.com tideswing.fun tidi.mobi tiduyun.com -tieamisu.com tieba.com tiebaimg.com +tiebanzi.com tiebaobei.com tiechui.cc tiedan2019.com @@ -94309,7 +93337,6 @@ tijox.org tik-tokapi.com tik2019.com tikersport.com -tiko.ink tiktoknewaccount.com tiktokrow-cdn.com tikuol.com @@ -94366,6 +93393,7 @@ tinetcloud.com tinfinite.com tinfo.com ting22.com +ting27.com ting55.com ting89.com tingbook.com @@ -94543,7 +93571,6 @@ tjgportnet.com tjgtgd.com tjhgmc.com tjhmsj.com -tjhskj.com tjhtcpvc.com tjhyzyxy.com tjian.com @@ -94553,7 +93580,6 @@ tjjfrh.com tjjhqyy.com tjjiaotong.com tjjinglang.com -tjjoycity.com tjjt360.com tjjtjt.net tjjwt.com @@ -94622,7 +93648,6 @@ tjxxcl.com tjxz.cc tjydyt.com tjyun.com -tjyywjc.com tjzb.com tjzcsj.com tjzfcg.com @@ -94635,6 +93660,7 @@ tjzxyy.com tjzyec.com tjzyefy.com tjzyfw.com +tjzymob.com tk-life.com tk-rays.com tk-xiong.com @@ -94648,7 +93674,6 @@ tkchina.com tkckjr.com tkcn.cc tkd-suzhou.com -tkddns.xyz tkfff.com tkgame.com tkhealthcare.com @@ -94679,7 +93704,6 @@ tl4su.com tl50.com tl88.net tlang.com -tlbaby.com tlbapm.com tlby120.com tlbyx.com @@ -94759,7 +93783,6 @@ tmbbs.com tmcdn.net tmctool.com tmeiju.com -tmetb.com tmetb.net tmhong.com tmhtour.com @@ -94815,7 +93838,6 @@ tnettms.com tnfn.net tnfno.icu tngcjx.com -tngdigital.com.my tnodenow.com tnong.com tnsou.com @@ -94958,7 +93980,6 @@ tongfugroup.com tonggao.info tongguanbao.net tonghanguav.com -tonghuaji.com tonghuan.com tonghuiqiye.com tongji.com @@ -94978,6 +93999,7 @@ tonglichang.com tonglingwulian.com tonglize.com tongmengge.com +tongmengguo.com tongniguoji.com tongoiltools.com tongpiao.com @@ -95072,6 +94094,7 @@ toodaylab.com toodudu.com tool.la tool.lu +tool56.com tool77.com tooleemesse.com toolgg.com @@ -95371,7 +94394,6 @@ toyoures.com toyoutesting.com toysir.com toysol.com -tozzger.info tp-data.com tp-hivi.com tp308kaiyuan.vip @@ -95704,6 +94726,7 @@ tsarufaq.com tsbjschool.com tsbtv.tv tschina.com +tscichina.com tscorona.com tsdaodao.com tsdjg.com @@ -95779,7 +94802,6 @@ tsrnjs.com tsrqjt.com tsrqjtfc.com tsruifeng.com -tsshunxin.com tssns.net tsstorry.com tsstyb.com @@ -95918,7 +94940,6 @@ ttwqw.com ttwx.com ttwxh.com ttxgu.com -ttxjj.com ttxn.com ttxs123.net ttxs7.com @@ -95936,6 +94957,7 @@ ttyongche.com ttyqm.com ttysq.com ttyuyin.com +ttyy800.vip ttyyuuoo.com ttz.com ttzcw.com @@ -95944,9 +94966,7 @@ ttzw365.com ttzyw.com tu3k.com tu54o7863tbf6.com -tu5858417496.cc tu8.cc -tu9215594236.cc tu93.biz tu960.com tuan800.com @@ -96088,7 +95108,6 @@ tuituifang.com tuituisoft.com tuituitang.com tuiwen.net -tuixue.online tuiyi.cc tuizx.com tujia.com @@ -96096,7 +95115,6 @@ tujiacdn.com tujian.com tujiandan.com tujidu.com -tujiwar.com tujixiazai.com tujuren.com tuke8.com @@ -96157,6 +95175,7 @@ tuo-pan.com tuoaa.com tuobeng.net tuocad.com +tuodan.tech tuodangclub.com tuodanlab.com tuodanyy.com @@ -96292,7 +95311,6 @@ tuzhongit.com tuzi123.com tuzi8.com tuziip.com -tv0001.com tv002.com tv121.com tv189.com @@ -96319,7 +95337,6 @@ tvmao.com tvmcloud.com tvmining.com tvniao.com -tvnwang.cc tvoao.com tvos.com tvt.im @@ -96379,7 +95396,6 @@ tx321.com tx365.com tx5d.com tx8j.com -tx9968.com txbanche.com txbapp.com txbimg.com @@ -96456,6 +95472,7 @@ txwestart.com txwm.com txwy.com txwy.com.tw +txx66.com txxbxx.com txxy.com txxzc.com @@ -96509,7 +95526,6 @@ tyfc.xyz tyfo.com tygameworld.com tygckj.com -tyguocao.com tyh120.com tyhjzx.com tyi365.com @@ -96526,7 +95542,6 @@ tymcdn.com tymotor.cc tyn.cc tynlwx.com -tynpjpf.com tynxy.com tyorient.com tyouai.com @@ -96602,7 +95617,6 @@ tzfdc.com tzfeilu.com tzfeize.xyz tzfile.com -tzfpa.com tzgcjie.com tzggzj.com tzgjjt.com @@ -96698,7 +95712,6 @@ u3dc.com u3dcn.com u3dol.com u3v3.com -u4ccj.icu u4u5.com u4u5.tv u51.com @@ -96792,6 +95805,7 @@ ucancs.com ucanrobot.com ucantech.com ucantech.net +ucany.net ucarinc.com ucassc.com ucb6.com @@ -96901,7 +95915,6 @@ uepei.com ueram.com ueren.com uestcedu.com -uestcgxcd.com uestcliuxue.com uetianshanyp.com ueuz.com @@ -96930,7 +95943,6 @@ ufolm.com uformwater.com ufotm.com ufsoo.com -uftcfo.xyz ufyct.com ug.link ug888.com @@ -96939,6 +95951,7 @@ ugapi.com ugapk.com ugbb.com ugdesk.com +ugdocker.link ugdtimg.com uggame.com uggd.com @@ -96978,7 +95991,6 @@ uhouzz.com uhp.cc uhs68.com uhsea.com -uhuf56.fun uhuibao.com uhuitong.com uhuocn.com @@ -97133,7 +96145,6 @@ uml-tech.com umlchina.com umlife.net umpay.com -umphek.com umpxkvtt.com ums86.com umsamd.com @@ -97157,7 +96168,6 @@ unafeed.com unaming.info unaming.net unbank.info -unbcomm.com uncbd.com unccr.com uncfa.org @@ -97238,7 +96248,6 @@ unionpayintl.com unionpaysecure.com unionsy.com uniontech.com -unionwebpay.com uniostay.com uniow.com unipack-tech.com @@ -97375,6 +96384,7 @@ upchina.com upchinapro.com upchinaproduct.com upd.kaspersky.com +update2.cyou update8.com updeals.com updf.com @@ -97427,13 +96437,11 @@ upwater.net upwith.me upx8.com upyun.com -upyunso.com upzxt.com upzxt.net uq-express.com uqbike.com uqche.com -uqd1.net uqee.com uqeegame.com uqiba.com @@ -97446,14 +96454,12 @@ uqitong.com uqseo.com uqualities.com uqude.com -uqufin.com uqulive.com uqz.com urart.cc urbanchina.org urbanmatters.com urbansocialwork.org -urbanwy.com urbetter.com urbetter.net urbtix.hk @@ -97508,8 +96514,7 @@ uscnk.com uscntv.com usdcny.net usdtmall.com -usdxz1.com -usdxz1.net +use-tencentclb.net use-trust.com useasp.net useaudio.com @@ -97618,7 +96623,6 @@ uucc.cc uucin.com uucl.vip uucnn.com -uuecs.com uuedutech.com uufbacad.shop uufund.com @@ -97639,7 +96643,6 @@ uulux.com uumachine.com uume.com uumeitu.com -uumnt.com uumnu.com uunice.com uunt.com @@ -97742,10 +96745,10 @@ uyanip.com uyanke.com uycnr.com uyesee.com -uyess.com uyhjnm.com uyi2.com uyiban.com +uymfybcf.shop uyou.com uyouii.cool uyouqu.com @@ -97771,6 +96774,7 @@ v-danci.com v-mate.mobi v-pack.net v-simtone.com +v-suan.com v-vay.com v.biz v.to @@ -97781,7 +96785,6 @@ v15cdn.com v15i.com v1h5.com v1kf.com -v1l1b.com v1lady.com v1pin.com v1tv.cc @@ -97917,7 +96920,6 @@ vattenvalve.com vauoo.com vautoshow.com vayakid.com -vaycaptoc-vn.com vaydeer.com vayol.com vayuan.com @@ -97928,6 +96930,9 @@ vbango.com vbaof.com vbaoxian-cib.com vbbobo.com +vbc08090op.com +vbc08100op.com +vbc08101op.com vbidc.com vbio-pharma.com vbiquge.com @@ -97941,7 +96946,6 @@ vcbeat.net vcc808.site vcchar.com vcd.io -vcdfsf99.fun vcdnga.com vcg.com vchangyi.com @@ -97977,13 +96981,10 @@ vcsmemo.com vcspark.com vctianshanvs.com vcxpe.com -vcxv73.fun -vcxv787.fun vdaye.com vdazz.net vdbet.com vdfly.com -vdfvdf33q.fun vdhf042.fun vdiagnostic.com vdian.com @@ -97997,7 +96998,6 @@ vdnyuwwq.com vdobiotech.com vdolady.com vdongchina.com -vdsdsf2.fun vdson888.com vdyoo.com vdyoo.net @@ -98075,7 +97075,6 @@ vergilisme.com verify5.com verisilicon.com verisyno.com -verodillan.com versa-ai.com versolsolar.com versoventure.com @@ -98117,7 +97116,6 @@ veryweibo.com verywind.com veryxiang.com veryzhun.com -veryzip.com ves100.com veshop.jp vestack-beta.com @@ -98134,8 +97132,6 @@ vf5c.com vfcdnrd.com vfcpay.com vfcsz.com -vfdvdfv77.fun -vfdvdg67.fun vfe.cc vfinemusic.com vfocus.net @@ -98144,7 +97140,6 @@ vfuiov.sbs vfuke.net vfund.org vfvdf.com -vfvdvd99.fun vfx123.com vg.com vg173.com @@ -98159,6 +97154,7 @@ vgjump.com vglook.com vgnclub.com vgoapp.com +vgogbuy.com vgooo.com vgover.com vgoyun.com @@ -98220,6 +97216,7 @@ videaba.com videasoft.com video-study.com video-voip.com +video2b.com video2text.com videocc.net videofty.com @@ -98275,6 +97272,7 @@ vimiy.com vims04.com vimsky.com vin114.net +vin17.com vincentqin.tech vinchin.com vindapaper.com @@ -98286,7 +97284,6 @@ vingroupinvestment.com vinjn.com vinkdong.com vinlion.com -vinnywang.com vinsondata.com violetgo.com violinstudy.net @@ -98486,7 +97483,6 @@ vjifen.com vjread.com vjshi.com vjtchina.com -vjzogyz.com vk6.me vk8.co vkaijiang.com @@ -98497,7 +97493,6 @@ vkjsq.com vkoolhf.com vkoopp.com vkrqtir.xyz -vkrtzzc.com vksir.zone vksoft.com vku6.com @@ -98541,7 +97536,6 @@ vmdo.net vmecum.com vmengblog.com vmeti.com -vmgikpw.com vmic.xyz vmicloud.com vmiua.com @@ -98705,7 +97699,6 @@ voo0.com vooec.com vooedit.com voole.com -voole.net voolea.com voolga.net voopoo.com @@ -98784,6 +97777,7 @@ vqs.com vqu.show vqudo.com vqudochina.com +vqyzdzcg.shop vr-cat.com vr186.com vr2.tv @@ -98797,7 +97791,6 @@ vrbt.mobi vrcfo.com vrdiamondtools.com vrelai.com -vreqnait.com vrindabg.com vrjie.com vrmajor.com @@ -98870,7 +97863,6 @@ vsyo.com vsyy.net vt-pharm.com vtache.com -vtbfgnf00.fun vtcsy.com vteamgroup.com vtears.com @@ -98884,7 +97876,6 @@ vtqccm.com vtradex.com vtrois.com vtron.site -vts-lab.com vtstar.net vtuzx.com vue-js.com @@ -98944,7 +97935,6 @@ vwvvwv.com vwwmsd.com vx.com vx56.com -vxcvd67.fun vxe.com vxia.net vxiaocheng.com @@ -98964,13 +97954,11 @@ vycool.com vyh64.net vyin.com vynior.com -vysj.com vyuan8.com vz.download.prss.microsoft.com vz41.com vzan.cc vzan.com -vzhan.net vzhang.net vzhantong.com vzhifu.net @@ -99000,7 +97988,6 @@ w123w.com w18.net w1989.com w218.com -w24so.com w2985nq.xyz w2bc.com w2gou.com @@ -99120,12 +98107,10 @@ wakeai.tech wakedata.com wakeofgods.com wakeup.fun -wakeupwulf.com wakingsands.com wakkaa.com wakuai.com wal8.com -walahe.com walanwalan.com walatao.com walekan.com @@ -99160,13 +98145,11 @@ waluer.com walvax.com wamawama.com wamila.com -wamkio.com wan-ka.com wan.cc wan.com wan1234.com wan123x.com -wan160.com wan25.com wan32.com wan5d.com @@ -99218,7 +98201,6 @@ wandarealm.com wandasportstravel.com wandavista.com wandawic.com -wande98.com wandhao.com wandhi.com wanding.net @@ -99313,7 +98295,6 @@ wangkangzhong.com wangkewang.com wangkl.com wangkong.com -wanglanying.com wangle.com wangligroup.com wangling.net @@ -99404,7 +98385,6 @@ wangzhanchi.com wangzhantuiguang.net wangzhanzj.com wangzhe.com -wangzhe.cx wangzhengzhen.com wangzhennan.com wangzhuanz.com @@ -99453,7 +98433,6 @@ wanlaiwang.com wanli.com wanli.org wanlian-group.com -wanliangfan.asia wanlicd.com wanliduo.com wanliniu.com @@ -99461,7 +98440,6 @@ wanlitong.com wanlongdianqi.com wanlongjituan.com wanmaco.com -wanmadajian.com wanmei.com wanmei.net wanmeidapei.com @@ -99630,7 +98608,6 @@ washuw.com wasintek.com wasoinfo.com wasonchina.com -wasqq.com wasu.com wasu.tv wasucnc.com @@ -99646,13 +98623,11 @@ watcheschep.com watchesreplica.cz watchlead.com watchok.net -watchreplica.cc watchreplica.co watchreplicaswiss.com watchrm.com watchshfw.com watchsos.com -watchsos1.com watchstor.com watchtop.com watchtraveler.com @@ -99782,7 +98757,6 @@ wcsteasker.com wcuhdi.com wcwlmobi.com wcxjs.com -wcxlib.com wcxsw.com wcyecs.com wczydns.com @@ -99798,6 +98772,8 @@ wddns.net wddream.com wdeab01.com wdexam.com +wdf1tz.com +wdf1tz.net wdfangyi.com wdfok.com wdfxw.net @@ -99840,7 +98816,6 @@ wdwd.com wdwlb.com wdxmzy.com wdxtub.com -wdxzzx.com wdycenter.com wdyiyuan.com wdyserver.com @@ -99909,7 +98884,6 @@ webanktcftp.net webankwealth.com webankwealthcdn.net webankwyd.com -webarch.org webarcx.com webcamx666.com webdissector.com @@ -99946,6 +98920,7 @@ weboss.hk webpackjs.com webportal.cc webportalapi.com +webpower.asia webpowerchina.com webqxs.com webrtc.win @@ -99972,7 +98947,6 @@ webview.tech webworker.tech webxgame.com webxin.com -webxmf.com webyang.net webyounger.com webzzcdn.com @@ -100227,7 +99201,6 @@ weimibio.com weimingchem.com weimingcq.com weimingedu.com -weimingfj.com weimingkids.com weimingxt.com weimisystem.com @@ -100292,6 +99265,7 @@ weishi024.com weishi100.com weishigz.com weishipin.com +weishishuyuan.com weisiliang.com weismarts.com weistang.com @@ -100338,11 +99312,10 @@ weixin-001.com weixin.com weixin12315.com weixinbang.com -weixinbianjiqi.com +weixinbiaoqing.com weixinbridge.com weixincall.com weixindadang.com -weixinduihuan.com weixing.com weixingate.com weixingmap.com @@ -100361,7 +99334,6 @@ weixinnft.com weixinpy.com weixinqing.com weixinqn.com -weixinquanquan.com weixinqz.com weixinrensheng.com weixinsir.com @@ -100392,7 +99364,6 @@ weiye.me weiyes.com weiyi.com weiyi.link -weiyichina.org weiyiqibj.com weiyitec.com weiyituku.com @@ -100484,7 +99455,6 @@ weme.fun wemechat.com wemeche.com wemediacn.com -wemiquan.com wemomo.com wemorefun.com wems.net @@ -100591,7 +99561,6 @@ wenneart.com wenpie.com wenroo.com wenrouge.com -wenruya.com wenryxu.com wensang.com wenshaktv.com @@ -100637,7 +99606,6 @@ wenxue100.com wenxue360.com wenxueapp.com wenxuedu.com -wenxuee.com wenxuefan.net wenxuem.com wenxuemi6.com @@ -100651,6 +99619,7 @@ wenxuetiandi.com wenxuexiao.com wenyaguan.com wenyaqi.net +wenyi188.com wenyijcc.com wenyoutai.com wenyouyun.com @@ -100696,7 +99665,6 @@ weshine.im weshineapp.com wesiedu.com wesingapp.com -wespme.com west-motion.com west.xyz west263.com @@ -100745,6 +99713,7 @@ wetvinfo.com weui.io weuschool.com wevul.com +wewillpro.com wewinpe.com wework-studio.com weworkcloudesk.com @@ -100773,7 +99742,6 @@ wf.pub wf121.com wf163.com wf66.com -wfaokun.com wfaozhuo.com wfbbs.com wfc805.com @@ -100809,7 +99777,6 @@ wflushebei.com wfmzjscl.com wfnmjx.com wfojsm.com -wfplb.com wfrcsc.com wfsanshan.com wfshiliyy.com @@ -100915,7 +99882,6 @@ whbjdn.com whbjyy.com whbmy.com whbodywell.com -whbsybj.com whbts.com whbuilding.com whbwj.com @@ -100970,7 +99936,6 @@ whecloud.com whecn.com whedu.net whee.com -whegj.com whenchat.net whenever-online.com wherexpress.com @@ -100993,7 +99958,6 @@ whggjtjs.com whggvc.net whggzc.com whgh.org -whgh1.icu whghjt.com whgjzt.com whgk.com @@ -101235,7 +100199,6 @@ whthgy.com whtime.net whtmhh.com whtongyun.com -whtongzhou.net whtonhe.com whtpgbyy.com whtpi.com @@ -101276,6 +100239,7 @@ whweb.net whwebsite.com whweiying.com whweo.com +whwgcm.com whwindplus.com whwkzc.com whwm.net @@ -101285,7 +100249,6 @@ whwtqx.com whwuyan.com whwx2018.com whwxxy.com -whwybg.com whwz.com whx0621.com whxcepc.com @@ -101305,6 +100268,7 @@ whycan.com whycw.com whyec.com whyenjoy.com +whyesi.fun whyestar.com whyicheng.com whyimingkeji.com @@ -101328,6 +100292,7 @@ whyunzhou.fun whyyhy.com whyyjt.com whyyy.com +whyzrcb.com whzb.com whzbdw.com whzbtb.com @@ -101342,7 +100307,6 @@ whzhjty.com whzhongxin.net whzhongzhi.com whzhtd.com -whzhuoyuan.com whzhzxmr.com whzjyy.com whzjzxy.com @@ -101482,7 +100446,6 @@ wind.moe windaka.com windbg.download.prss.microsoft.com windcoder.com -winde.cc windesign.cc windeyenergy.com windfone.com @@ -101645,12 +100608,10 @@ wisewatercloud.com wish-hightech.com wish3d.com wishcad.com -wishcc.com wishdown.com wishisp.com wishtec.com wisiyilink.com -wismom.com wison-engineering.com wison.com wispower.com @@ -101765,7 +100726,6 @@ wkbrowser.com wkcmall.com wkcw.net wkddkyy.com -wkderp.com wkdty.com wkene.com wkepu.com @@ -101991,7 +100951,6 @@ wo-smart.com wo-voyage.com wo-xa.com wo.cc -wo113.net wo116114.com wo186.tv wo1wan.com @@ -102086,7 +101045,6 @@ woko.cc wol.tv wolai.com wolaidai.com -wolaidu1.com wolansw.com wolegou.net wolei-tech.com @@ -102129,6 +101087,7 @@ women-heart.com womendedw.com womenjie.com wonadea.com +wonder-link.net wonder.wiki wondercv.com wonderful-pr.com @@ -102149,6 +101108,7 @@ wonderyouxi.com wondko.com wonei.com wonengxing588.com +wonflavour.com wonfulplaza.com wongcw.com wongpeace.com @@ -102221,7 +101181,6 @@ worksoho.com worktile.com worktilemail.com workyun.com -world-audio.com world-fireworks.com world-machining.com world-pet.org @@ -102509,7 +101468,6 @@ wsiv.net wsjgd688.com wsjol.com wsjtxia.com -wsjx.net wskam.com wsks.net wskwai.com @@ -102683,6 +101641,7 @@ wuhanbiennial.com wuhanbus.com wuhanchengqi.com wuhancityofdesign.com +wuhandaishu.com wuhanev.com wuhanfuke120.com wuhanfukeyy.com @@ -102721,7 +101680,6 @@ wuhexxg.com wuhongsheng.com wuht.net wuhu.cc -wuhuagongshui.com wuhuashe.com wuhubtv.com wuhues.com @@ -102735,7 +101693,6 @@ wui5.com wuip.com wuji-edu.com wuji.com -wujia800.com wujianghongyi.com wujianghr.com wujiangtong.com @@ -102746,9 +101703,11 @@ wujiehd.com wujiehuyu.com wujiemed.com wujiexiang.com +wujieyouth.com wujiit.com wujijiasu.com wujinimg.com +wujinpp.com wujintool.com wujinwater.com wujiok.com @@ -102801,6 +101760,7 @@ wuliujie.com wuliuren.com wuliuyun.com wulong365.com +wuluoyun.com wulvxing.com wumai.net wumart.com @@ -102944,7 +101904,6 @@ wuyousy.com wuyouyun.cc wuyouyun.com wuys.com -wuyu123.com wuyuan.cc wuyublog.com wuyueart.com @@ -103012,7 +101971,6 @@ www.adobe.com www.amd.com www.cg www.com.my -www.dell-brand.com www.dell.com www.djivideos.com www.gov.mo @@ -103036,7 +101994,6 @@ wwwfkw.com wwwic.net wwwimages.adobe.com wwwimages2.adobe.com -wwwruhecom.com wwxrmyy.com wwxxg.com wx-api.net @@ -103238,6 +102195,7 @@ wxtrust.com wxtyjt.com wxtyyy.com wxtyzyyy.com +wxurls.com wxuse.tech wxutil.com wxw120.com @@ -103302,7 +102260,6 @@ wyjianzhan.com wyjsq.com wyk8.com wykefu.com -wykjht.com wykw.com wyl.cc wylylxx.com @@ -103520,7 +102477,6 @@ x-tetris.com x-vsion.com x-xiangsh.com x0769.com -x0or8.icu x0y081e.xyz x11263.com x11296.com @@ -103578,7 +102534,6 @@ xa4.com xa7j.icu xa8yuan.com xa9t.com -xaaag.com xaaycz.com xabaotu.com xabbs.com @@ -103713,7 +102668,6 @@ xayzjc.com xazcit.com xazls.com xazmkm.com -xazqsw.com xazwy.com xazysoft.net xazyy.com @@ -103732,8 +102686,8 @@ xbauto.com xbb8.com xbbaoan.com xbceo.com -xbcf518.com xbcjy.com +xbcpsjk.com xbd61.com xbdgps.com xbds.cc @@ -103746,7 +102700,7 @@ xbext.com xbfashion.com xbfnet.com xbfzb.com -xbgcyh.com +xbgjw.com xbhb.net xbhbgs.com xbhjgg.com @@ -103880,7 +102834,6 @@ xcshaifen.com xcstuido.com xcswkj.com xcsyy.com -xct168.com xctmr.com xcultur.com xcurrency.com @@ -103890,7 +102843,6 @@ xcvmbyte.com xcvvs.com xcwhjj.com xcx-x.com -xcxbaba.com xcxd-inc.com xcxjpd.com xcxvs.com @@ -103914,7 +102866,6 @@ xd0.com xd0731.com xd56b.com xd57.com -xd79.com xd8888.net xda.show xdadang.com @@ -103925,10 +102876,8 @@ xdc.at xdcdn.com xdcdn.net xdcg100.com -xddhaoka.com xddpay.com xde.com -xde6.net xdebike.com xdf99.com xdfckjz.com @@ -104046,7 +102995,6 @@ xf-world.org xf-yun.com xf.com xf0797.com -xf09.net xf119.xin xf1233.com xf21.com @@ -104060,7 +103008,6 @@ xfannix.com xfaqwlw.com xfb315.com xfbst.com -xfc888.com xfcjn.com xfcn.com xfconnect.com @@ -104123,7 +103070,6 @@ xfztgxt.com xg-techgroup.com xg1234.com xg38.com -xgaij.com xgamevip.com xgantt.net xgate.com @@ -104178,7 +103124,6 @@ xgz.cc xgzbwdj.com xgzdhj.com xgzrs.com -xgzx.org xh-arch.com xh-health.com xh-silicone.com @@ -104214,6 +103159,7 @@ xhgame.com xhgamesdk.com xhgjyc.com xhgz.com +xhh.pw xhhd6.com xhhdd.cc xhhhzs.com @@ -104256,6 +103202,7 @@ xhslink.com xhslw.com xhsmlt.com xhsrmyy.com +xhsxmt.com xhsyqx.com xhsyww.com xhtheme.com @@ -104314,6 +103261,7 @@ xiaguanzhan.com xiagujian.com xiaheng.net xiaiot.com +xiajuan88.com xiakefyz.com xiakeol.com xialingying.cc @@ -104378,7 +103326,6 @@ xiangbinmeigui.com xiangbojiubo.com xiangboshu.net xiangbosoft.com -xiangchengjob.com xiangcoin.com xiangcun.cc xiangcun.com @@ -104392,7 +103339,6 @@ xianghuanji.com xianghumarathon.com xianghunet.com xianghus.com -xiangjiajiaju.com xiangjiamuye.com xiangjiang-amc.com xiangjiasz.com @@ -104596,7 +103542,6 @@ xiaocaoyun.com xiaoce.fun xiaocen.com xiaochamao.com -xiaochangxian.com xiaoche001.com xiaocheng.com xiaochengxu029.com @@ -104618,7 +103563,6 @@ xiaodaozhi.com xiaodapei.com xiaodengvip.com xiaodian.com -xiaodian.in xiaodian.so xiaodianweb.com xiaodigu.com @@ -104650,7 +103594,6 @@ xiaofeng.org xiaofengtv.com xiaofubao.com xiaofuzi.net -xiaog.xyz xiaogan.com xiaogegelive.com xiaogj.com @@ -104798,11 +103741,9 @@ xiaomaomv.com xiaomape.com xiaomark.com xiaomashijia.com -xiaomaxitong.co xiaomaxitong.com xiaomayi.co xiaomayi.net -xiaomayics.com xiaomazhixing.com xiaomei.cc xiaomeiti.com @@ -104914,7 +103855,6 @@ xiaoshuomi.cc xiaoshuowu.com xiaoshuxiong.com xiaositv.com -xiaoss.net xiaot.com xiaota.com xiaotangketang.com @@ -105096,7 +104036,6 @@ xibojiaoyu.com xibsteel.com xibu168.com xibujuece.com -xibumaker.com xiburongmei.com xicaijing.com xicaishe.com @@ -105116,7 +104055,6 @@ xidibuy.com xidie.com xidiglobal.com xidong.net -xidongv.com xiduobaby.com xie22.com xie56.xyz @@ -105161,7 +104099,6 @@ xiexinbao.com xiexingcun.com xieyangzhe.com xieyimao.com -xieyixs.com xieyudatea.com xiezewen.com xiezhua.com @@ -105181,7 +104118,6 @@ xifengjiuzhaoshang.com xifu120.com xifumi.com xigaogen.com -xigeweb.com xiggua.com xigo.tv xigou100.com @@ -105328,7 +104264,6 @@ xindachem.com xindaifu.com xindalawyer.com xindasulian.com -xindawenxue.com xindawz.com xinde.org xindemarinenews.com @@ -105363,12 +104298,10 @@ xinfree.com xinfuhk.com xinfushe.com xinfuyouxi.com -xinfuyuan818.com xinfuyun.net xing-bei.com xing-su.com xing73.com -xing800.com xingames.com xinganghulan.cc xingb.net @@ -105436,12 +104369,12 @@ xingkong.link xingkong.run xingkongfy.xyz xingkongmt.com -xingkoo.com xingkupai.com xinglai.com xinglan.co xingleseo.com xingliju.com +xinglin-tech.com xinglingyingxue.com xinglinpukang.com xingloo.com @@ -105848,7 +104781,6 @@ xinyongsoon.com xinyou.com xinyoudui.com xinyour.com -xinyu-chem.com xinyu-tam.com xinyu19.com xinyuanclub.com @@ -105881,7 +104813,6 @@ xinzhiguanwangyun.com xinzhongqi.net xinzhou.org xinzlkj.com -xinzuhe.com xinzuojia.com xinzushenghuo.com xiolift.com @@ -105939,7 +104870,6 @@ xishpj.com xishu365.com xishuai.com xishuai.net -xishuashuatuan.com xishuizk.com xishunj.com xisofttec.com @@ -106182,7 +105112,6 @@ xjietiao.com xjishu.com xjisme.com xjiyou.com -xjjbbs.com xjjhjt.com xjjnjp.org xjjqd154.com @@ -106197,11 +105126,9 @@ xjmachine.com xjmg.com xjmtx.com xjmty.com -xjmw.net xjnnet.net xjnzm.com xjoycity.com -xjpanshi.com xjpdf.com xjphsd.com xjpnmt.com @@ -106357,6 +105284,7 @@ xlpan.com xlpp.net xlqeai.com xlqzh.com +xlread.com xlreads.com xlsdn.com xlsemi.com @@ -106400,6 +105328,7 @@ xm51.com xm5156.com xm680.com xm6wpp.com +xm9.co xm909.com xm9m.com xmac.app @@ -106443,7 +105372,6 @@ xmfunny.com xmgd.com xmgltwzhs.com xmgps.com -xmgreenrock.com xmgsd.com xmgslx.com xmguoyi.com @@ -106486,7 +105414,6 @@ xmmade.com xmmama.com xmmeiyou.com xmmnrj.com -xmmtoys.com xmmtu.com xmmuye.com xmnjdwx.com @@ -106546,6 +105473,7 @@ xmxwl.net xmxwz.com xmyeditor.com xmylhy.com +xmyouma.com xmyzm.com xmzangao.com xmzdls.com @@ -106561,7 +105489,6 @@ xmzs.org xmzwdgm.com xmzyark.com xmzzy.net -xn--0lqv73m.com xn--0lqwsu2w.com xn--15q53an56b23i4nu0jb.com xn--1bs9ye16ez8b.com @@ -106648,7 +105575,6 @@ xn--chq7lp8e46htw3g.com xn--chq84ir6vbgn.com xn--chq84itwgrb674blm6f.com xn--cjztj18l.com -xn--cks935disa.com xn--cpqr0dg9g4t0fodaq5c.com xn--cssw8z54rj2ds2q.com xn--czr694b @@ -106698,12 +105624,9 @@ xn--fjq720a xn--g2xt1d91f2xk.com xn--g2xx48c xn--glr604k.com -xn--gmq00s1xfuvekuas68k.com xn--gmq238c5fy.com xn--gmqr9gdtrhuf56g.com xn--h0tn34c.cc -xn--h6qq3whvbw6a42x4ij.com -xn--hdc1eb8be0au3c9hfb.xn--gecrj9c xn--husx9zj2eepau0se83d.com xn--hutn94av9amzg.net xn--hxt814e @@ -106711,11 +105634,11 @@ xn--i6q33br88fkud.com xn--igt225itqf.com xn--imr513n xn--io0a7i +xn--it-if7c19g5s4bps5c.com xn--jh1a128b.com xn--jhqx3hjuanvm9zbb084ayucqwxhuqzew60ae3xve1fnwybs8a.com xn--jor0b302fdhgwnccw8g.com xn--jpr47zq87axwjc0d.com -xn--jvrr72kgma408a.com xn--kivq8be3whsi.com xn--kput3i xn--l9qya49g86gm9ghpbzy1dwl0fppo.com @@ -106734,7 +105657,6 @@ xn--ntsp37j.net xn--nyqx17d.com xn--nyqx2gbsm8u0b.com xn--nyqy26a -xn--nyw355ejle.com xn--od1a98zlyg68g.com xn--ohqn1dw64cf45c8l9a1ba.com xn--omrvgz6er31au6f.com @@ -106782,6 +105704,7 @@ xn--vcsu9p66gy1l9vpnnbk52f.com xn--vhq3m33sbqhpsmtnuxfq.com xn--vhq3mr8b802a.net xn--vhq4ut2dsxd5xqnicjxxo55a756aovhik0aunm.com +xn--vhq72yfwbt0elp2cpkhtld55g73l1o6a.com xn--vhqa63bt1h.com xn--vhqqbz2p62hm92e04p.com xn--vhqu1kbz3bnbi.com @@ -106795,7 +105718,6 @@ xn--w9q675dm1p7em.net xn--w9qr0k.com xn--w9qy23cc6adz7d.net xn--wbsz85a2a.com -xn--wlqw5ebvdhpi5hepihs3c.com xn--wtqs2doz3b.com xn--wxtr44c.live xn--xcry9n251cvcar5xj6r.com @@ -106811,7 +105733,6 @@ xn--xhqx10kr8o.com xn--xkr26fp82clgt.com xn--xkr999cp4fv97a.com xn--xkrs9ba41r.com -xn--xys863bov4ac4h.com xn--y6q834d2k3al4h.com xn--y8jhmm6gn.moe xn--yet74fr8g.com @@ -106905,13 +105826,11 @@ xpdf.net xpeae.com xpeng.link xpf.cc -xpfood.com xpgod.com xpgps.cc xphcn.com xpj0066.com xpj16.net -xpj6789.com xpjis.com xpkjpk.com xpkongqipao.com @@ -106934,13 +105853,11 @@ xq2024.com xq5.com xq52.com xq668.com -xq8.cc xqb24.com xqbase.com xqblog.com xqce.com xqckg.com -xqcwm123.com xqdgroup.com xqdjkwz.com xqfunds.com @@ -106994,7 +105911,6 @@ xrunda.com xrvm.com xrwf66.com xrxr.xyz -xrxukegi.com xrxx365.com xrzhg.com xrzww.com @@ -107004,7 +105920,6 @@ xs058.com xs3cnc.com xs52.com xs63.info -xs6po.icu xs7.cc xs7.com xs7.la @@ -107028,7 +105943,6 @@ xsee.cc xsesc.com xsfaya.com xsfc.com -xsfsp.com xsgame.net xsgame99.com xsgongju.com @@ -107039,7 +105953,6 @@ xshdchem.com xshellcn.com xshengyan.com xshenshu.com -xshgsh.com xshhotels.com xshkvip.com xshmzz.com @@ -107082,6 +105995,7 @@ xsmart.link xsmoe.com xsmya.com xsn168.com +xsnow.net xsnsyh.com xsool.com xsp0311.com @@ -107101,7 +106015,6 @@ xsslyjt.com xssyidc.com xssz.net xsszy.com -xstc938.com xsteach.com xsti.net xstnet.com @@ -107148,7 +106061,6 @@ xtaike.com xtal.cc xtao.me xtbank.com -xtbaoziji.com xtc-edu.com xtcaq.com xtcfjt.com @@ -107160,12 +106072,12 @@ xtep.com xthinking.net xthtc.com xthyjt.com +xtiai.com xtibet.com xtingcloud.com xtion.net xtjc.com xtjcxh.org -xtjita.com xtjky.com xtjlyy.com xtjob.net @@ -107183,11 +106095,9 @@ xtowork.com xtransfer.com xtrapowercn.com xtrc.net -xtrgc.com xtrunc.com xtsfuke.com xtsjj.net -xtszls.com xttaff.com xttblog.com xttz.com @@ -107221,7 +106131,6 @@ xuanceo.com xuancheng.org xuanchuanyi.com xuandan.com -xuandashi.com xuandecarpet.com xuanfengge.com xuanhaikuwan.com @@ -107248,6 +106157,7 @@ xuanshu.org xuansiwei.com xuantaikeji.com xuanteng.org +xuanwifi.com xuanwonainiu.com xuanwu88.com xuanwumobile.com @@ -107264,7 +106174,6 @@ xuanyouwang.com xuanyuanhuangdi.org xuanyuans.com xuanyuanzjy.com -xuanyucttw.com xuanyusong.com xuanyutech.com xuanzhi.com @@ -107376,7 +106285,6 @@ xuesax.com xueseo.com xueshanlinghu.com xuesheng.com -xuesheng360.com xueshiyun.com xueshu.com xueshu5.com @@ -107459,7 +106367,6 @@ xuexiwa.com xuexizhiwang.com xuexizoo.com xuexun.com -xueya8.com xueyanshe.com xueyiyun.com xueyou.org @@ -107516,7 +106423,6 @@ xunbin.com xunbo.net xunchabing.com xunchanggroup.com -xuncheng.cc xundasemi.com xundayun.com xundekai.com @@ -107554,7 +106460,6 @@ xunkids.com xunlanchina.com xunlei.com xunlei.net -xunleige.com xunleioa.com xunleisvipp.com xunlew.com @@ -107696,7 +106601,6 @@ xwmyw.com xwog.com xwok8.com xwood.net -xwpo.com xwpx.com xwscg.com xwshensuofeng.com @@ -107711,7 +106615,6 @@ xwy-powder.com xwylhh.com xwyun.net xwzc.net -xwzw5.com xwzxldfx.com xx-industrial.com xx-motor.com @@ -107795,7 +106698,6 @@ xxsb.com xxsfjx.com xxshell.com xxshu.com -xxskins.com xxspd.com xxsrmyy.com xxsy.net @@ -107819,7 +106721,6 @@ xxxfeng.com xxxhhh.com xxxinwen.com xxxmeng.com -xxxoooxxxooo.net xxxx68xxxx.com xxxx88xxxx.com xxxx92xxxx.com @@ -107874,7 +106775,6 @@ xybsyw.com xybtv.com xybygc.com xybygw.com -xyc-edu.com xycad.com xycaogen.com xycareer.com @@ -107907,7 +106807,6 @@ xyffsb.com xyffvip.com xyfinechem.com xyfish.com -xyfnz.com xyfsy.com xyg100.com xygdcm.com @@ -108035,6 +106934,7 @@ xyyh.xyz xyyksy.com xyykt.org xyyl.com +xyyuan.fun xyyuedu.com xyyx82.com xyyxcm.co @@ -108105,7 +107005,6 @@ xzfesco.com xzfhhz.com xzfile.com xzfmg.com -xzfwz.com xzfwzl.com xzgdsf.com xzggjyzpw.com @@ -108189,7 +107088,6 @@ xzw.pw xzwanda.com xzwhg.com xzwhlyjt.com -xzwk.hk xzwyxh.com xzx.com xzxjkyy.com @@ -108227,6 +107125,7 @@ y5coin.com y5kfpt.com y5news.com y5store.com +y617.com y6kky.com y77.cc y78r.com @@ -108430,7 +107329,7 @@ yangwangauto.com yangwc.com yangwenlong.org yangwenqing.com -yangxianbaixing.com +yangxi.tech yangxiang.com yangxiangdb.com yangxingzhen.com @@ -108466,6 +107365,7 @@ yangziwater.com yangzw.vip yanhaijing.com yanheyey.com +yanhuamedia.net yanhuoidc.com yaniu.net yanjianshengwu.com @@ -108477,7 +107377,6 @@ yanjingge.com yanjiubaogao.com yanjiuchubanshe.com yanjiusuo.cc -yanjiyou.net yanjob.com yanjun7858.com yanjunbo.com @@ -108497,6 +107396,7 @@ yanpk.com yanqiao.com yanqingshan.com yanqueai.com +yanrongyun.com yanshanmuyuan.com yanshanpump.com yanshaoutlets.com @@ -108636,11 +107536,9 @@ yaozhigong.com yaozhizhu.com yaozs.com yaozui.com -yapodong.com yapp.com yaqilian.com yaqjyj.com -yareiot.com yaristyle.com yarncm.com yarward.com @@ -108679,7 +107577,6 @@ yawei.cc yaweijituan.com yawen8.com yawy.cc -yaxbpx.com yaxi.net yaxiaodong.com yaxige.com @@ -108703,7 +107600,6 @@ yaypool.com yayu.net yayunjiqi.com yazhihg.com -yazhou-cy.com yazhougoufang.com yazuo.com yazx.net @@ -108721,12 +107617,12 @@ ybaobx.com ybaomall.com ybbonpet.com ybbwy.com -ybbxch.xyz ybbxkj.com ybc1024.com ybc35.com ybccb.com ybccode.com +ybcheck.com ybcjmarathon.com ybcnjg.com ybcxjd.com @@ -108807,7 +107703,6 @@ ycbiz.net ycbright.com ycbus.com ycc.ink -yccar.com yccdl.net yccdn.com ycclny.com @@ -108817,7 +107712,6 @@ ycd-hk.com ycdext.net ycdfby.com ycdfwater.com -ycdongjian.com ycdongxu.com ycdrh.com ycdryy.com @@ -108869,10 +107763,8 @@ ycjt2007.com ycjy-service.com ycjyjt.com ycjzzsw.com -yckamq.xyz yckceo.com yckceo.vip -yckjonline.com yckjzsq.com yckkdd.com ycku.com @@ -108896,7 +107788,6 @@ ycpec.com ycphkj.com ycpinke.com ycpsy.com -ycq.cab ycqin.com ycqq.com ycrcrs.com @@ -108973,6 +107864,7 @@ ydc360.com ydcb.com ydce.com ydcloud.cc +yddtiyu.com yddxkj.com ydfeathers.com ydfgq.com @@ -109043,12 +107935,12 @@ yead.net yeah.net yeahka.com yeahnic.net +yeahteen.com yeahworld.com yeai.com yealink.com yealinkvc.com yeaosound.com -yeapb.com yeapcloud.net yearlygreen.com yearnfar.com @@ -109073,6 +107965,7 @@ yedone.com yeduxiaoshuo.com yee5.com yee800.com +yeeanbao.com yeeaoo.com yeeauto.com yeecai.com @@ -109294,6 +108187,7 @@ yfhospital.com yfhxtech.com yfinds.com yfiot.com +yfisher.com yfjiakao.com yfjnjc.com yfklxz.com @@ -109387,7 +108281,6 @@ yh999999.com yhachina.com yhadmob.com yham.net -yhbimg.com yhc-card.com yhcangchu.com yhchj.com @@ -109395,7 +108288,6 @@ yhchn.com yhcjcw.com yhcko.com yhcmovie.com -yhcny.com yhcplatform.com yhcqw.com yhd.com @@ -109449,16 +108341,13 @@ yhshapp.com yhsms.com yhsp.net yhsport.com -yhssyl.com yhstjt.com yhtclb.com yhthing.com -yhtj2014.com yhtools.cc yhtuchuang.com yhtx.tv yhtzx.net -yhuimall.com yhurl.com yhwch.com yhwins.com @@ -109522,7 +108411,6 @@ yibite.com yiboard.com yiboliu.com yiboow.com -yiboshi-f.com yiboshi.com yibotec.com yiboyangguang.com @@ -109628,7 +108516,6 @@ yiduqiang.com yiduwater.com yiec.com yiernews.com -yieryouxin.com yiexi.com yifabao.com yifajingren.com @@ -109636,7 +108523,6 @@ yifake.com yifan211.com yifancdn.com yifancn.com -yifang170.com yifanggl.com yifanghy.com yifanmedia.net @@ -109757,7 +108643,6 @@ yijiupi.com yijiuplus.com yijuedesign.com yijueweb.com -yijukemao.com yijun77.com yikag.com yikai.com @@ -109782,7 +108667,6 @@ yikuaide.com yikuaipin.com yikuaiqu.com yikuaixiu.com -yikugzb.com yikuns.com yikuyi.com yilandezhong.com @@ -109839,7 +108723,6 @@ yimeiya.com yimenapp.com yimenapp.net yimeng.com -yimengseo.com yimenonline.com yimenseo.net yimenssl.com @@ -109869,6 +108752,7 @@ yimudoor.com yimutian.com yimuymc.com yinbaitu.com +yinban.com yinbangbroker.com yinbaor.com yinbian.cc @@ -109974,6 +108858,7 @@ yingsoft.com yingsoo.com yingsun.net yingsx.com +yingt.fun yingtai.com yingtaigroup.com yingtaoai.com @@ -110000,7 +108885,6 @@ yingxun56.com yingyang630.com yingyankantu.com yingyecraft.com -yingyeping.com yingyijin.com yingyinglicai.com yingyonghao8.com @@ -110014,7 +108898,6 @@ yingyudengji.com yingyuecl.com yingyuehe.com yingyushijie.com -yingyuweb.com yingyuxiaoshuo.com yingzaocms.com yingzhongshare.com @@ -110100,6 +108983,7 @@ yinyueke.net yinyuemeitu.com yinyuetai.com yinyueyouxi.com +yinyuezhizuoren.com yinzhaowang.com yinzhijie.com yinzhupharma.com @@ -110142,6 +109026,7 @@ yiqiaochina.com yiqibazi.com yiqibing.com yiqibuduoduo.com +yiqicai.com yiqicesuan.com yiqichuangxiang.com yiqicms.com @@ -110163,9 +109048,7 @@ yiqingyuan.com yiqinzi.com yiqioffice.com yiqipaipingtai.com -yiqisese.com yiqishai.com -yiqishangmao.com yiqishanyuan.com yiqiso.com yiqisooimg.com @@ -110182,7 +109065,6 @@ yiqixiegushi.com yiqiyoo.com yiqiyou.com yiquan-keji.com -yiquanhs.com yiquanseo.com yiquhai.com yiqujing.com @@ -110203,6 +109085,7 @@ yiruantong.com yiruide.com yiruikecorp.com yiruituo.com +yirujs.com yiruniot.com yiryi.com yisa.com @@ -110547,6 +109430,7 @@ ykccn.com ykccn.net ykcer.com ykclass.com +ykcuqlt.com ykdgd.com ykdmsy.com ykedu.net @@ -110556,6 +109440,7 @@ ykhongye.com ykimg.com ykinvestment.com ykjljdcss.com +ykjtb.com ykkpict.com ykkpict.vip ykmanhua.com @@ -110594,7 +109479,6 @@ yl-scm.com yl.ag yl.vip yl0008168.com -yl007.com yl01.com yl0551.com yl1001.com @@ -110687,7 +109571,6 @@ ylscw.net ylsdeyy.com ylsdyyy.com ylsfqyy.com -ylsgmr.com ylsgzx.com ylsmtnozzle.com ylssgg.com @@ -110697,7 +109580,6 @@ ylstatic.com ylstcgz.com ylstudy.com ylsw.net -ylsxyjy.com ylt2008.com yltapi.com yltender.com @@ -110762,6 +109644,7 @@ ymapp.com ymark.cc ymars.com ymatou.com +ymawv.la ymbaidu.com ymbank.com ymbq301.com @@ -110769,9 +109652,7 @@ ymcart.com ymcart.net ymcsepu.com ymdoctor.com -ymeasy.com ymechina.com -ymeei.com ymexf.com ymfund.com ymg.cc @@ -110783,7 +109664,6 @@ ymhudong.com ymhui.com ymhuwai.com ymhzpx.com -ymima360.com ymiot.net ymisc.com ymj9.com @@ -110798,10 +109678,8 @@ ymm56.com ymmfa.com ymmobi.com ymnsdk.com -ymoxuan.com ympc88.com ympcb.com -ymraaa.com ymrcw.vip ymrzr.com yms.cool @@ -110929,7 +109807,6 @@ ynsyy.com ynszfw.com ynszk.com ynszlyy.com -yntcbc.com yntz.cc yntz.net ynu.icu @@ -110938,7 +109815,6 @@ ynw360.com ynwater.com ynwin.com ynwww.cc -ynx111.com ynxcbc.com ynxdfpr.com ynxingexinxi.com @@ -110951,7 +109827,6 @@ ynxxb.com ynxxwfw.com ynxzy.com ynyc.com -ynycloud.xyz ynyes.com ynylhy.com ynyp.com @@ -110977,7 +109852,6 @@ yobo360.com yobochina.com yobolove.com yocajr.com -yocan.net yocdev.com yocng.com yocofs.com @@ -111112,7 +109986,6 @@ yongxiang.work yongxiangwz.com yongxinby.com yongxinfushi.com -yongxingbiaoye.com yongxinhuangjin.com yongxinji.com yongxinshuo.com @@ -111121,6 +109994,7 @@ yongxinxuexiao.com yongxiuren.com yongyi-valve.com yongyoujia.com +yongyu.xyz yongyuenj.com yongzhegroup.com yongzhentang.com @@ -111144,6 +110018,7 @@ yonyouoa.com yonyouup.com yoo616.com yoo66.com +yooc.me yoodb.com yooek.com yoofh.com @@ -111187,7 +110062,6 @@ you-mi.net you03.com you1ke.com you200.com -youa.net youacc.com youandme123.com youba.com @@ -111200,6 +110074,7 @@ youbbs.org youbeichefu.com youbian.com youbibi.com +youbikecn.com youbohe.com youboy.com youboy.net @@ -111465,6 +110340,7 @@ youtianz.com youtibao.com youto.club youtoart.com +youtochat.com youtoupiao.com youtrans.net youtu.com @@ -111530,7 +110406,6 @@ youxihezi.net youxihun.com youxiivf.com youxij.com -youxike.com youxila.com youximao.com youximt.com @@ -111549,7 +110424,6 @@ youxishuo.com youxitexiao.com youxituoluo.com youxiuhui.com -youxiula.com youxiwangguo.com youxiwugui.com youxixf.com @@ -111715,7 +110589,6 @@ yqb.com yqb920.com yqbank.com yqbdt.com -yqbgjj.com yqbimg.com yqbimg.net yqbus.net @@ -111867,7 +110740,6 @@ yskjz.com yskjzj.com yskxjy.com yslcw.com -ysljmw.com ysljnkj.com yslpaint.com yslqo.com @@ -111909,13 +110781,11 @@ ystzzy.com ysug.com ysupan.com ysw1950.com -ysw365.com ysw68.com yswebportal.cc yswh.com yswlgame.com yswliot.com -yswpq.com yswswkj.com yswu.net yswyyds.com @@ -111927,7 +110797,6 @@ ysxsw86.cc ysxts.com ysxyhtz.com ysxzls.com -ysy.tm ysys.com ysyycv.com yszgnn.com @@ -111947,6 +110816,7 @@ yt69.com yt698.com yta-tech.com ytaotao.net +ytaxx.com ytbainakeji.com ytbbs.com ytbfilm.com @@ -112031,7 +110901,6 @@ ytshipin.com ytsyy.com ytszg.com ytsznyy.com -yttwh.com yttxcs.com ytud.net ytuqy.com @@ -112043,7 +110912,6 @@ ytxinyan.com ytxsc.com ytxww.com ytyaoye.com -ytygame.com ytyhdyy.com ytyz.net ytyz.org @@ -112061,7 +110929,6 @@ yuan2808.com yuan7i.com yuanabsorber.com yuanbaobaoxian.com -yuanbaohui.com yuanbaokc.com yuanbaotaoche.com yuanbei.biz @@ -112089,6 +110956,7 @@ yuanfeng1.com yuanfudao.biz yuanfudao.com yuanfudao.ws +yuanfudaoschool.com yuanfusc.com yuangongbao.com yuanhaitaiji.com @@ -112128,7 +110996,6 @@ yuanqisenlin.com yuanrenbang.com yuanrengu.com yuanrenxue.com -yuanrongbank.com yuansfer.com yuanshanbx.com yuanshen.com @@ -112177,11 +111044,9 @@ yuanzipower.com yuanziyan.com yuanzun.fun yuaoq.com -yuaowuliu.com yuapt.com yubaike.com yubangweb.com -yubb12.site yuboinfo.com yuboqj.com yucekj.com @@ -112189,7 +111054,6 @@ yucezhijia.com yuchai.com yuchaicd.com yuchaidiesel.com -yuchailogistics.com yuchainev.com yuchainz.com yuchaipg.com @@ -112201,7 +111065,6 @@ yuchofoodmachine.com yuchuan.org yuchuantech.com yuci998.com -yucne.com yucoolgame.com yucui.org yucunkeji.com @@ -112255,8 +111118,6 @@ yuegui.shop yueguisuchong.com yuehaifeed.com yuehaowy.com -yuehengji.com -yuehz.com yueimg.com yueji.com yuejianzun.xyz @@ -112353,7 +111214,6 @@ yueyouxs.com yueyq.com yueyu114.com yueyuanzhiye.com -yueyuego.com yueyues.com yueyueworld.com yueyueyd.com @@ -112371,7 +111231,6 @@ yufeng05.com yufenggroup.com yufenjiameng.com yuflc.com -yufu365.com yufuid.com yufuid.net yugaopian.com @@ -112413,7 +111272,6 @@ yui06131shga.com yui06161shga.com yui06171shga.com yuiapi.com -yuike.com yujia.com yujiahui.com yujianai520.com @@ -112429,7 +111287,6 @@ yujunjie.com yujunren.com yujzw.com yukaiprecision.com -yukapril.com yukeinfo.com yukexinchem.com yukhj.com @@ -112518,7 +111375,6 @@ yunarm.com yunaw.com yunba.io yunban.com -yunbang.net yunbaofei.com yunbaolai.com yunbaoming.com @@ -112620,7 +111476,6 @@ yunfengdie.com yunfutang8.com yunfutech.com yunfuwuqiba.com -yunfww.com yungangbj.com yungao-ssp.com yungao.mobi @@ -112738,7 +111593,6 @@ yunpay.cc yunpei.com yunpian.com yunpiao.net -yunptg.com yunqi.org yunqi2050.com yunqi6.com @@ -112752,6 +111606,7 @@ yunqishi8.com yunqiyqh.com yunque360.com yunquna.com +yunrang.fun yunrenshi.net yunrg.com yunrongu.com @@ -112923,7 +111778,6 @@ yupinny.com yupk.xyz yupoo.com yupu.com -yuqi.fun yuqianshu.com yuqiao.com yuqiaolong.com @@ -112977,6 +111831,7 @@ yuwan-game.com yuwang.com yuwangcn.com yuwanjianshe.com +yuwanyouxi.com yuweikuijianzhan.com yuweitek.com yuweiyanwo.com @@ -113000,7 +111855,6 @@ yuxicorrosion.com yuxinews.com yuxingqiu.com yuxinoulogistics.com -yuxinqinhang.com yuxipark.com yuxitech.com yuxungs.com @@ -113037,7 +111891,6 @@ yuzhongxxw.com yuzhoua.com yuzhouwan.com yuzhouyiyuan.com -yuzhouzb.com yuzhua.com yuzhuan.com yuzhulin.com @@ -113049,7 +111902,6 @@ yuzua.com yuzundaojia.com yvv.in yvzfgigpiwmofux.com -yw020.com yw11.com yw160.com yw2005.com @@ -113082,7 +111934,6 @@ ywjinfabag.com ywjsgc.com ywky.org ywlandport.com -ywlm.net ywnds.com ywnz.com ywopt.com @@ -113113,7 +111964,6 @@ yx-s.com yx-s.net yx0599.com yx090.com -yx10011.com yx12345.com yx1312.com yx192.com @@ -113139,7 +111989,6 @@ yxcal.com yxcax.com yxcc.net yxcity.com -yxclub.cc yxcxfw.com yxdaily.com yxdd.com @@ -113164,7 +112013,6 @@ yxgcx.com yxgczx.com yxgf.net yxgfcj.com -yxglpjx.com yxgxbike.com yxgxw.com yxgxz.com @@ -113185,7 +112033,6 @@ yxi.cc yxiangzu.com yxiannetgz.com yxianypin.com -yxiaoy.com yxid.net yxielts.com yxilogistics.com @@ -113196,7 +112043,6 @@ yxintent.com yxit.net yxixy.com yxjia.com -yxjidi.com yxjjdby.com yxjkhb.com yxjob.net @@ -113213,13 +112059,11 @@ yxlady.com yxlady.net yxle.net yxlele.com -yxlfg.com yxlink.com yxlmdl.net yxlqge.com yxlsj.com yxm.com -yxm.xyz yxmarketing01.com yxmcu.com yxmspx.com @@ -113243,7 +112087,6 @@ yxsea.com yxsj.net yxsos.com yxss.com -yxsss.com yxsxhj.com yxt-tattoo.com yxt.com @@ -113289,7 +112132,6 @@ yy591.com yy6.fun yy845.com yy960.com -yy99998.com yyarea.com yyblly.com yybnet.net @@ -113373,6 +112215,7 @@ yyqyyyy.com yyrc.com yyrec.com yyrenting.com +yyrjd.net yyrtv.com yysf.cc yyshangfu.com @@ -113414,6 +112257,7 @@ yyyeee.com yyyg.com yyyisp.com yyylll.com +yyymvp.com yyyncp.com yyyqm.com yyyvvv.com @@ -113453,7 +112297,6 @@ yz360.cc yz3c.com yz3l.com yz4l.com -yz99999.com yzajz.com yzbank.com yzbo.tv @@ -113558,7 +112401,6 @@ yzpanstar.com yzpetfood.com yzpfbyy.com yzport.com -yzqbbs.com yzqcw.com yzqgamefun.com yzqx.com @@ -113586,7 +112428,6 @@ yzsrmyy.org yzsszw888.com yzstudio.net yzstx.net -yzsynergy.com yzsz.net yzsz3.icu yzszsxh.com @@ -113660,7 +112501,7 @@ z5encrypt.com z5w.net z5z4.com z668.net -z69427.com +z6e.com z701.com z729.com z7xz.com @@ -113675,7 +112516,6 @@ zabxib.com zac1993.com zachina.org zack.asia -zackku.com zacveh.com zaduonews.com zaecu.com @@ -113692,7 +112532,6 @@ zahuoji.com zai-art.com zai-xian.com zaibaoan.com -zaidu.la zaidu.org zaiduu.com zaiemei.com @@ -113762,7 +112601,6 @@ zanig.com zanih.com zankee1955.com zanlaa.com -zanmeishige.com zanmeizhibo.com zanpic.com zanpu.com @@ -113809,6 +112647,7 @@ zattc.com zawomkv.com zaxdcredit.com zaxisparts.com +zaxline.com zaxzn.com zaysz.com zazhidang.com @@ -114060,7 +112899,6 @@ zddr.com zddream.com zdeqs.com zdevo.com -zdexe.com zdfans.com zdfdc.com zdfei.com @@ -114073,7 +112911,6 @@ zdh0.com zdh168.com zdhaitao.com zdhaitao.net -zdhnayr.com zdhuoyunbao.com zdhyibiao.com zdiao.com @@ -114117,7 +112954,6 @@ zdwx.com zdwx.net zdwx.vip zdxlz.com -zdxygl.com zdyfy.com zdz.la zdzdm.com @@ -114130,7 +112966,6 @@ ze-introduce.com ze-invite.com ze-mp.com ze-wx.com -ze13.com ze5.com zeaho.com zealer.com @@ -114147,6 +112982,7 @@ zedsy.com zedyer.com zeedao.com zeekrlife.com +zeekrline.com zeelis.com zeesin.com zeeteq.com @@ -114229,6 +113065,7 @@ zetbig.com zetcloud.com zettlernb.com zetyun.com +zeusai.xin zeuux.com zeuux.org zexiaoqiao.com @@ -114240,7 +113077,6 @@ zeze.com zezhengcnc.com zezhenwangluo.com zezhuanggd.com -zf-8.com zf313.com zf360.net zf3d.com @@ -114286,7 +113122,6 @@ zg-gyt.com zg-import.com zg-imsoft.com zg-seastar.com -zg-tianzi.com zg114jy.com zg114w.com zg114zs.com @@ -114440,7 +113275,6 @@ zgjtb.com zgjxcad.com zgjxjjw.com zgjymg.com -zgjzlw.com zgjzy.org zgkao.com zgkashi.com @@ -114462,7 +113296,6 @@ zglfw.com zglibrary.com zglipin.com zgljl2012.com -zglkq.net zglscom.com zglushang.com zglutongjituan.com @@ -114490,7 +113323,6 @@ zgnjm.com zgnnwdkj.com zgnt.cc zgnt.net -zgnuan.com zgnwp.com zgny.com zgnyw.net @@ -114503,7 +113335,6 @@ zgpj.net zgps168.com zgpts.com zgpy168.com -zgqbxh.com zgqbyp.com zgqcdt.com zgqczj.com @@ -114522,7 +113353,6 @@ zgrcjyw.com zgrd.org zgrdnews.com zgrlm.com -zgrmw.com zgruisai.com zgrzbj.com zgsclp.com @@ -114615,16 +113445,13 @@ zgxytc.com zgxyzx.net zgxzcj.com zgxzhjx.com -zgyaohua.com zgybsfxh.com zgycgc.com zgyeda.com zgyey.com -zgygsy.com zgygw.com zgyhbc.com zgyhys.org -zgyinpin.com zgyjlf.com zgylbx.com zgylj.com @@ -114731,7 +113558,6 @@ zhangfeibiao.com zhangfensir.com zhangferry.com zhangfupeng.com -zhanggang.net zhanggaoyuan.com zhangge.net zhanghaodaren.com @@ -114759,7 +113585,6 @@ zhangmen.org zhangmenkid.com zhangnan.xyz zhangnq.com -zhangpu597.com zhangqi.ltd zhangqiaokeyan.com zhangqiongjie.com @@ -114863,6 +113688,7 @@ zhaodaojia.com zhaodedao.xyz zhaodigroup.com zhaodll.com +zhaodns999.com zhaofangbang.net zhaofenxiang.com zhaogang.com @@ -114960,6 +113786,7 @@ zhaozongjie.com zhaqtuu.xyz zharev.com zhatoufa.com +zhatuyunshu.com zhayanwang.com zhb1.com zhbit.com @@ -114972,13 +113799,13 @@ zhcic.com zhcidian.com zhcinema.com zhckw.com +zhcnews.com zhcommerce.com zhcomputing.com zhcsgc.com zhctv.com zhcw.com zhcyanshi.com -zhdba.com zhdfg.com zhdgps.com zhdhq.com @@ -114991,7 +113818,6 @@ zhdxbj.com zhe.com zhe800.com zhe900.com -zhe97.com zhebei.com zhebeipharm.com zhebumai.com @@ -115029,7 +113855,6 @@ zheliyin.com zhemu.xyz zhen-ao.com zhen.com -zhen22.com zhenai.com zhenaihn.com zhenandl.com @@ -115039,10 +113864,10 @@ zhenbi.com zhenbizi.com zhenbon.com zhenchu.cc -zhendagroup.com zhending-chicken.com zhendong365.com zhendonggames.com +zhene.net zhenfacloud.com zhenfangyuan.com zhenfund.com @@ -115096,7 +113921,6 @@ zhengte.net zhengtongcloud.com zhengtoon.com zhengtujy.com -zhenguangchem.com zhenguanyu.biz zhenguanyu.com zhenguo.com @@ -115105,7 +113929,6 @@ zhengwutong.com zhengxiaoling.com zhengxinbao.com zhengxing021.com -zhengxinghuahui.com zhengxingzhijia.com zhengxinonly.com zhengyaing.win @@ -115197,6 +114020,7 @@ zheyuntech.com zhezheai.com zhezhekan.com zhezhewhkj.com +zhezhi.tech zhfc.com zhfivehospital.com zhfund.com @@ -115235,13 +114059,10 @@ zhiangroup.com zhiannet.com zhiantec.com zhib.net -zhibaifa.com zhibaimeixue.com zhibeidy.com -zhibiai.com zhibiaow.com zhibitouzi.com -zhibo.me zhibo.tv zhibo8.cc zhibo8.com @@ -115389,7 +114210,6 @@ zhil.cloud zhilandaren.com zhilehuo.com zhileiqiye.com -zhileng.com zhilepin.com zhilian-nb.com zhilian.com @@ -115470,7 +114290,6 @@ zhiruiinvest.com zhiruyi.com zhisanzhao.com zhishanfu.com -zhishangguan.com zhishangnet.com zhishangsoft.com zhisheji.com @@ -115482,7 +114301,6 @@ zhishi.com zhishi.tech zhishifanli.com zhishifenzi.com -zhishiq.com zhishisoft.com zhishiwu.com zhishuedu.com @@ -115562,6 +114380,7 @@ zhiyuanshijie.com zhiyuanxinglvye.com zhiyuanyun.com zhiyuanzhongyi.com +zhiyuapp.com zhiyueit.com zhiyuequan.com zhiyun-cn.com @@ -115677,7 +114496,6 @@ zhongcetech.com zhongche.com zhongchebaolian.com zhongchewuliu.com -zhongchoujia.com zhongchouke.com zhongchouyan.com zhongchuang365.com @@ -115788,7 +114606,6 @@ zhongmingjiaoyu.net zhongnakeji.com zhongnengrecycling.com zhongnice.com -zhongniu.com zhongnongjimu.com zhongp.com zhongpaiwang.com @@ -115816,7 +114633,6 @@ zhongshanweixin.com zhongshanzhekai.com zhongshengdai.com zhongshenglong.xyz -zhongshengxinyun.com zhongshi-chem.com zhongshiqixie.com zhongshucan.com @@ -115841,7 +114657,6 @@ zhongtusy.com zhongwang.com zhongwangsc.com zhongwei-info.com -zhongweiag.com zhongweicable.com zhongweihotels.com zhongweiteamtop.com @@ -115925,7 +114740,6 @@ zhongzhixin.com zhongzhixitong.com zhongzhongkeji.com zhongzhoulianhe.com -zhongzhoutm.com zhongzhouwater.com zhongzhuang.com zhongzicili.cc @@ -115972,6 +114786,7 @@ zhpecc.com zhpharm-sh.com zhqgtjxh.com zhqyue.com +zhrct.com zhrczp.com zhrtc.com zhsapphire.com @@ -116178,7 +114993,6 @@ zhuluyy.com zhumanggroup.com zhumanggroup.net zhumaweb.com -zhumengqinziyou.com zhumengwl.com zhumingepc.com zhumiquan.com @@ -116194,7 +115008,6 @@ zhundaoyun.com zhuneijs.com zhuniangjia.com zhuniu.com -zhunkua.net zhunnai.com zhunshitianqi.com zhunter.com @@ -116213,12 +115026,10 @@ zhuohuamg.com zhuohuan-ep.com zhuojuead.com zhuokai1.com -zhuokearts.com zhuolaoshi.com zhuolaoshi.net zhuoligk.com zhuomaiyun.com -zhuomajidian.com zhuomiles.com zhuomogroup.com zhuoquapp.com @@ -116260,7 +115071,6 @@ zhushan.cc zhushandata.com zhushiyao.com zhushou001.com -zhushu123.com zhushuiwen.com zhust.com zhutao.com @@ -116355,7 +115165,6 @@ zhzdtz.com zhzf-group.com zhzf360.net zhzh.xyz -zhzhkg.com zhzpjt.com zhzxin.com zhzyw.com @@ -116402,7 +115211,6 @@ zigaokj.com zige365.com zigeer.com zigonggroup.com -zigongyinuo.com ziguhonglan.com zihai0351.com zihai0535.com @@ -116501,7 +115309,6 @@ ziroom.com ziroomapartment.com ziroomstay.com ziruxing.com -zisai2.com zisea.com zisen.com zisha.com @@ -116534,7 +115341,6 @@ ziweicn.com ziweifu.com ziweihuan.com ziweuu.com -ziwojianding.net ziwoyou.net ziwufang.com ziwuyunjiao.com @@ -116566,7 +115372,6 @@ ziyimall.com ziying.site ziyou.com ziyou.studio -ziyouad.com ziyoufa.com ziyouma.net ziyouwu.com @@ -116818,6 +115623,7 @@ zjgzllxs.com zjgzp.com zjgztz.com zjgzzc.com +zjh1893.xyz zjha.org zjhac.com zjhaitian.com @@ -116830,7 +115636,6 @@ zjhcbank.com zjhcly.com zjhd.com zjhdchem.com -zjhdcs.com zjheacc.com zjheadway.com zjhejiang.com @@ -117092,7 +115897,6 @@ zjskgr.com zjskjt.com zjslep.com zjslzh.com -zjsmhg.com zjsms.com zjspas.com zjssjt.com @@ -117257,7 +116061,6 @@ zjzhongtian.com zjzj.net zjzj.org zjzjjx.com -zjznk.com zjzoneng.com zjzramc.com zjzrzyjy.com @@ -117576,7 +116379,6 @@ zntcexpo.com zntschool.com zntvrom.com zntx.cc -zntzdj.com znum.com znwb.com znxdxs.com @@ -117599,6 +116401,7 @@ zocoxx.com zodgame.me zoe360.com zoebon.com +zoeeasy.com zoeess.com zoform.com zofund.com @@ -117624,6 +116427,7 @@ zonafs.com zonboapp.com zonci.com zone-king.com +zone.id zone139.com zoneben.com zoneidc.com @@ -117672,7 +116476,6 @@ zookingsoft.com zookparts.com zoolnasm.com zoom3g.com -zoomad.net zoomerstudio.com zoomeye.org zoomla.net @@ -117683,6 +116486,7 @@ zoosnet.net zoossoft.com zoossoft.net zooszyservice.com +zoot.plus zootope.ink zooyoo.cc zoqlan.com @@ -117708,7 +116512,6 @@ zouin.net zoujiang.com zoukankan.com zoular.com -zouming.cc zoutu.com zouzhi.world zouzhiqiang.com @@ -117723,6 +116526,7 @@ zoyuecs.com zozen.com zp.cc zp.do +zp005.com zp0716.com zp0737.com zp114.net @@ -117782,13 +116586,13 @@ zqfdc.net zqgame.com zqgreen.com zqhthr.com +zqhuahui.com zqic.net zqids.com zqins.com zqjcedu.com zqjiese.com zqjinneng.com -zqjjr.com zqkjy.com zqlian.com zqlx.com @@ -117943,7 +116747,6 @@ zsjcxh.com zsjdxh.org zsjhsjy.com zsjhx.com -zsjinqi.com zsjjob.com zsjjyp.com zsjuchuang.com @@ -118010,10 +116813,10 @@ zsythink.net zsyyart.com zszk.net zszq.com -zszqw.com zszxsz.com zszyss.com zt-express.com +zt-g.com zt-info.com zt-job.com zt-motor.com @@ -118103,7 +116906,6 @@ ztvcar.com ztweld.com ztwlbeijing.com ztwlgyl.com -ztwx.net ztwzcg.com ztwzsc.com ztxinli.com @@ -118129,7 +116931,6 @@ zu3.com zuadr.com zuan-cheng.com zuan88.com -zuanao.com zuanke8.com zuanlo.com zuanqianyi.com @@ -118173,7 +116974,6 @@ zuiben.com zuibook.com zuiceshi.net zuicool.com -zuidabao.com zuidaima.com zuidijia.com zuidongxi.com @@ -118478,7 +117278,6 @@ zxqfjt.com zxqg.com zxrcfw.com zxrtb.com -zxs-coffee.com zxsauto.com zxsctf.com zxsg88.com @@ -118565,6 +117364,7 @@ zydlks.com zydown.com zydsy.com zydtrip.net +zydza.com zydzkjcloud.com zye.cc zyea.com @@ -118717,7 +117517,6 @@ zzbaike.com zzbaowen.com zzbbs.com zzbd.org -zzbds.net zzboiler.com zzboyou.com zzbs.org @@ -118728,7 +117527,6 @@ zzc9.com zzccom.com zzccp.com zzcdnx.com -zzcdsl.com zzcjby.com zzcjxy.com zzcm1.com @@ -118753,7 +117551,7 @@ zzfeilu.com zzfly.net zzfreshair.com zzfriend.com -zzfwb.com +zzfxfz.com zzgcjyzx.com zzgd.tv zzgdapp.com @@ -118763,7 +117561,6 @@ zzgkyy.com zzgtjtgs.com zzguest.com zzguifan.com -zzh789.com zzhaofang.com zzhaoz.com zzhbgs.com @@ -118794,6 +117591,7 @@ zzlgxy.net zzliot.com zzlirui.com zzllq.com +zzlongyou.com zzlt.net zzlt0.com zzltsw.com @@ -118824,6 +117622,7 @@ zzqss.com zzquan9.com zzqudu.com zzqxs.com +zzqz2024.com zzqzz.com zzrc.net zzrcw.net @@ -118941,6 +117740,7 @@ adcdownload.apple.com adcdownload.apple.com.akadns.net admob-cn.com adservice.google.com +afcs.dell.com ai.zhaomi.cn alibaba.cdn.steampipe.steamcontent.com amp-api-edge-lb-cn.itunes-apple.com.akadns.net @@ -119021,6 +117821,7 @@ clickserver.googleads.com client-api.itunes.apple.com clientflow.apple.com clientflow.apple.com.akadns.net +clientperipherals.dell.com clientservices.googleapis.com cma.itunes.apple.com cn-smp-paymentservices.apple.com @@ -119044,8 +117845,10 @@ cstat.apple.com cstat.cdn-apple.com ctldl.windowsupdate.com cueme-api.quark.cn +customization-cdn.dell.com dartsearch-cn.net dd-cdn.origin-apple.com.akadns.net +dds.dell.com dejavu.apple.com devblogs.microsoft.com developer.microsoft.com @@ -119053,6 +117856,7 @@ devimages-cdn.apple.com devstreaming-cdn.apple.com dg-meta.video.google.com discussionschinese.apple.com +dl.dell.com dl.google.com dl.l.google.com docs.microsoft.com @@ -119065,20 +117869,30 @@ download.qatp1.net download.tensorflow.google.com download.visualstudio.microsoft.com downloaddispatch.itunes.apple.com +ea2cn-dev-outlet.dell.com +ea2cn-prod-outlet.dell.com +ea2cn-staging-outlet.dell.com emmapplecodevice.googleapis.com emoi-cncdn.bing.com experiments.apple.com f.c2r.ts.cdn.office.net +fcs.dell.com fides-pol.apple.com firebase-settings.crashlytics.com fontfiles.googleapis.com fonts.googleapis.com fonts.gstatic.com fs.microsoft.com +fta.dell.com +ftaapj.dell.com +ftaemea.dell.com +ftasitapj.dell.com g0.gstatic.com g1.gstatic.com g2.gstatic.com g3.gstatic.com +gbxgateway-dev.dell.com +gbxgateway.dell.com geetest.datasink.sensorsdata.cn go.corp.google.com gog-cdn-fastly.gog.com @@ -119135,6 +117949,7 @@ guzzoni.smoot.apple.com hellofontpreview.oss-cn-beijing.aliyuncs.com hellowebfonts.oss-cn-beijing.aliyuncs.com hospital.pku.edu.cn +i.dell.com i.pki.goog icloud-cdn.icloud.com.akadns.net icloud.cdn-apple.com @@ -119199,6 +118014,7 @@ msgruser.dlservice.microsoft.com music.apple.com myapp.itunes.apple.com myvs.download.prss.microsoft.com +nexus.dell.com np-edge.itunes.apple.com ntp.aliyun.com ntp.tencent.com @@ -119227,6 +118043,7 @@ oscdn.apple.com oscdn.origin-apple.com.akadns.net osxapps.itunes.apple.com osxapps.itunes.g.aaplimg.com +p.cdn.persaas.dell.com p1-juejin.byteimg.com p2-juejin.byteimg.com p3-juejin.byteimg.com @@ -119290,6 +118107,7 @@ s5.mzstatic.com safebrowsing-cache.google.com safebrowsing.googleapis.com scanservice1.qcpp1.net +scene7-cdn.dell.com sdx.microsoft.com se-edge.itunes.apple.com se2.itunes.apple.com @@ -119303,9 +118121,13 @@ sf-api-token-service.itunes.apple.com sh-pod2-smp-device.apple.com shazam-insights.cdn-apple.com shell.cdn.office.net +si.cdn.dell.com silverlight.dlservice.microsoft.com slupdate.dlservice.microsoft.com +sm.dell.com smp-device-content.apple.com +snp.cdn.dell.com +snpi.dell.com software.download.prss.microsoft.com sp.itunes.apple.com ss.bjmu.edu.cn @@ -119337,6 +118159,7 @@ sup.corp.google.com sup.l.google.com support-china.apple-support.akadns.net support.apple.com +supportassist.dell.com surface.downloads.prss.microsoft.com swallow-apple-com.v.aaplimg.com swallow.apple.com @@ -119383,11 +118206,13 @@ weatherkit.apple.com wl.dlservice.microsoft.com wscont1.apps.microsoft.com wscont2.apps.microsoft.com +www-csb.dell.com www-google-analytics.l.google.com www-googletagmanager.l.google.com www.amd.com www.apple.com www.apple.com.edgekey.net.globalredir.akadns.net +www.dell.com www.destinationurl.com www.entrust.cn www.gstatic.com diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver index 68ed364446..6eed58cfbc 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver @@ -1 +1 @@ -202508212214 +202509112212 diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt b/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt index b0d6bb6669..4d383cfc88 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.txt @@ -735,6 +735,8 @@ brutaltgp.com bsky.app bsky.network bsky.social +bt4g.org +bt4gprx.com bt95.com btaia.com btbit.net @@ -1131,6 +1133,7 @@ costco.com cotweet.com counter.social coursehero.com +covenantswatch.org.tw coze.com cpj.org cpu-monkey.com @@ -1679,6 +1682,7 @@ fdc64.org fdc89.jp feedburner.com feeder.co +feedly.com feeds.fileforum.com feedx.net feelssh.com @@ -1851,6 +1855,8 @@ ftvnews.com.tw ftx.com fucd.com fuchsia.dev +fuckccp.com +fuckccp.xyz fuckgfw.org fulione.com fullerconsideration.com @@ -2702,6 +2708,7 @@ iphone4hongkong.com iphonetaiwan.org iphonix.fr ipicture.ru +ipify.org ipjetable.net ipobar.com ipoock.com @@ -3307,6 +3314,7 @@ mofos.com mog.com mohu.club mohu.rocks +moj.gov.tw mojim.com mol.gov.tw molihua.org @@ -4676,6 +4684,7 @@ talkcc.com talkonly.net tanc.org tangren.us +tanks.gg taoism.net tapanwap.com tapatalk.com diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver b/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver index 68ed364446..6eed58cfbc 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver +++ b/small/luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver @@ -1 +1 @@ -202508212214 +202509112212 diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh index 36ead42bbf..c0d8f10b87 100755 --- a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh +++ b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh @@ -5,7 +5,7 @@ NAME="homeproxy" -log_max_size="10" #KB +log_max_size="50" #KB main_log_file="/var/run/$NAME/$NAME.log" singc_log_file="/var/run/$NAME/sing-box-c.log" sings_log_file="/var/run/$NAME/sing-box-s.log" diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc index 1ade681d60..27ee275d14 100755 --- a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc +++ b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_client.uc @@ -135,6 +135,8 @@ if (match(proxy_mode), /tun/) { endpoint_independent_nat = uci.get(uciconfig, uciroutingsetting, 'endpoint_independent_nat'); } } + +const log_level = uci.get(uciconfig, ucimain, 'log_level') || 'warn'; /* UCI config end */ /* Config helper start */ @@ -399,7 +401,7 @@ const config = {}; /* Log */ config.log = { disabled: false, - level: 'warn', + level: log_level, output: RUN_DIR + '/sing-box-c.log', timestamp: true }; diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc index 4988aeeda2..224d725032 100755 --- a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc +++ b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/generate_server.uc @@ -23,12 +23,15 @@ uci.load(uciconfig); const uciserver = 'server'; +const log_level = uci.get(uciconfig, uciserver, 'log_level') || 'warn'; +/* UCI config end */ + const config = {}; /* Log */ config.log = { disabled: false, - level: 'warn', + level: log_level, output: RUN_DIR + '/sing-box-s.log', timestamp: true }; diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc index b883ee09d9..fb27432029 100644 --- a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc +++ b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/homeproxy.uc @@ -92,7 +92,7 @@ export function strToInt(str) { }; export function strToTime(str) { - return str ? (str + 's') : null; + return !isEmpty(str) ? (str + 's') : null; }; export function removeBlankAttrs(res) { diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/migrate_config.uc b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/migrate_config.uc index 22a5e02a5c..281b9d97ab 100755 --- a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/migrate_config.uc +++ b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/migrate_config.uc @@ -50,8 +50,7 @@ if (github_token) { } /* tun_gso was deprecated in sb 1.11 */ -const tun_gso = uci.get(uciconfig, uciinfra, 'tun_gso'); -if (tun_gso || tun_gso === '0') +if (!isEmpty(uci.get(uciconfig, uciinfra, 'tun_gso'))) uci.delete(uciconfig, uciinfra, 'tun_gso'); /* create migration section */ @@ -65,6 +64,13 @@ if (!migration_crontab) { uci.set(uciconfig, ucimigration, 'crontab', '1'); } +/* log_level was introduced */ +if (isEmpty(uci.get(uciconfig, ucimain, 'log_level')) + uci.set(uciconfig, ucimain, 'log_level', 'warn'); + +if (isEmpty(uci.get(uciconfig, uciserver, 'log_level')) + uci.set(uciconfig, uciserver, 'log_level', 'warn'); + /* empty value defaults to all ports now */ if (uci.get(uciconfig, ucimain, 'routing_port') === 'all') uci.delete(uciconfig, ucimain, 'routing_port'); @@ -204,6 +210,10 @@ uci.foreach(uciconfig, ucinode, (cfg) => { if (!isEmpty(cfg.tls_ech_tls_disable_drs)) uci.delete(uciconfig, cfg['.name'], 'tls_ech_tls_disable_drs'); + /* tls_ech_enable_pqss is useless and deprecated in sb 1.12 */ + if (!isEmpty(cfg.tls_ech_enable_pqss)) + uci.delete(uciconfig, cfg['.name'], 'tls_ech_enable_pqss'); + /* wireguard_gso was deprecated in sb 1.11 */ if (!isEmpty(cfg.wireguard_gso)) uci.delete(uciconfig, cfg['.name'], 'wireguard_gso'); @@ -228,7 +238,7 @@ uci.foreach(uciconfig, uciroutingrule, (cfg) => { /* server options */ /* auto_firewall was moved into server options */ const auto_firewall = uci.get(uciconfig, uciserver, 'auto_firewall'); -if (auto_firewall || auto_firewall === '0') +if (!isEmpty(auto_firewall)) uci.delete(uciconfig, uciserver, 'auto_firewall'); uci.foreach(uciconfig, uciserver, (cfg) => { diff --git a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc index 97b6778082..bfb902f774 100755 --- a/small/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc +++ b/small/luci-app-homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc @@ -569,7 +569,7 @@ function main() { log(sprintf('Removing node: %s.', cfg.label || cfg['name'])); } else { - map(keys(node_cache[cfg.grouphash][cfg['.name']]), (v) => { + map(keys(cfg), (v) => { if (v in node_cache[cfg.grouphash][cfg['.name']]) uci.set(uciconfig, cfg['.name'], v, node_cache[cfg.grouphash][cfg['.name']][v]); else diff --git a/small/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm b/small/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm index 78883b9f94..dbe8aff219 100644 --- a/small/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm +++ b/small/luci-app-passwall/luasrc/view/passwall/rule/rule_version.htm @@ -55,22 +55,18 @@ local api = require "luci.passwall.api" "gfwlist_update","chnroute_update","chnroute6_update", "chnlist_update","geoip_update","geosite_update" ]; - const targetNode = document.querySelector('form') || document.body; - const observer = new MutationObserver(() => { + const bindFlags = () => { + let allBound = true; flags.forEach(flag => { const orig = Array.from(document.querySelectorAll(`input[name$=".${flag}"]`)).find(i => i.type === 'checkbox'); - if (!orig) { - return; - } + if (!orig) { allBound = false; return; } // 隐藏最外层 div const wrapper = orig.closest('.cbi-value'); if (wrapper && wrapper.style.display !== 'none') { wrapper.style.display = 'none'; } const custom = document.querySelector(`.cbi-input-checkbox[name="${flag.replace('_update','')}"]`); - if (!custom) { - return; - } + if (!custom) { allBound = false; return; } custom.checked = orig.checked; // 自定义选择框与原生Flag双向绑定 if (!custom._binded) { @@ -84,8 +80,13 @@ local api = require "luci.passwall.api" }); } }); - }); - observer.observe(targetNode, { childList: true, subtree: true }); + return allBound; + }; + const target = document.querySelector('form') || document.body; + const observer = new MutationObserver(() => bindFlags() ? observer.disconnect() : 0); + observer.observe(target, { childList: true, subtree: true }); + const timer = setInterval(() => bindFlags() ? (clearInterval(timer), observer.disconnect()) : 0, 300); + setTimeout(() => { clearInterval(timer); observer.disconnect(); }, 5000); }); function update_rules(btn) { diff --git a/v2rayn/v2rayN/ServiceLib/Common/JsonUtils.cs b/v2rayn/v2rayN/ServiceLib/Common/JsonUtils.cs index 6954e124df..4fbaa0e18d 100644 --- a/v2rayn/v2rayN/ServiceLib/Common/JsonUtils.cs +++ b/v2rayn/v2rayN/ServiceLib/Common/JsonUtils.cs @@ -9,6 +9,31 @@ public class JsonUtils { private static readonly string _tag = "JsonUtils"; + private static readonly JsonSerializerOptions _defaultDeserializeOptions = new() + { + PropertyNameCaseInsensitive = true, + ReadCommentHandling = JsonCommentHandling.Skip + }; + + private static readonly JsonSerializerOptions _defaultSerializeOptions = new() + { + WriteIndented = true, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }; + + private static readonly JsonSerializerOptions _nullValueSerializeOptions = new() + { + WriteIndented = true, + DefaultIgnoreCondition = JsonIgnoreCondition.Never, + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }; + + private static readonly JsonDocumentOptions _defaultDocumentOptions = new() + { + CommentHandling = JsonCommentHandling.Skip + }; + /// /// DeepCopy /// @@ -34,11 +59,7 @@ public class JsonUtils { return default; } - var options = new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }; - return JsonSerializer.Deserialize(strJson, options); + return JsonSerializer.Deserialize(strJson, _defaultDeserializeOptions); } catch { @@ -59,7 +80,7 @@ public class JsonUtils { return null; } - return JsonNode.Parse(strJson); + return JsonNode.Parse(strJson, nodeOptions: null, _defaultDocumentOptions); } catch { @@ -84,12 +105,7 @@ public class JsonUtils { return result; } - var options = new JsonSerializerOptions - { - WriteIndented = indented, - DefaultIgnoreCondition = nullValue ? JsonIgnoreCondition.Never : JsonIgnoreCondition.WhenWritingNull, - Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping - }; + var options = nullValue ? _nullValueSerializeOptions : _defaultSerializeOptions; result = JsonSerializer.Serialize(obj, options); } catch (Exception ex) diff --git a/v2rayn/v2rayN/ServiceLib/Common/Utils.cs b/v2rayn/v2rayN/ServiceLib/Common/Utils.cs index 49a359c014..358d4e9a5c 100644 --- a/v2rayn/v2rayN/ServiceLib/Common/Utils.cs +++ b/v2rayn/v2rayN/ServiceLib/Common/Utils.cs @@ -331,6 +331,32 @@ public class Utils .ToList(); } + public static Dictionary> ParseHostsToDictionary(string hostsContent) + { + var userHostsMap = hostsContent + .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .Select(line => line.Trim()) + // skip full-line comments + .Where(line => !string.IsNullOrWhiteSpace(line) && !line.StartsWith("#")) + // strip inline comments (truncate at '#') + .Select(line => + { + var index = line.IndexOf('#'); + return index >= 0 ? line.Substring(0, index).Trim() : line; + }) + // ensure line still contains valid parts + .Where(line => !string.IsNullOrWhiteSpace(line) && line.Contains(' ')) + .Select(line => line.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)) + .Where(parts => parts.Length >= 2) + .GroupBy(parts => parts[0]) + .ToDictionary( + group => group.Key, + group => group.SelectMany(parts => parts.Skip(1)).ToList() + ); + + return userHostsMap; + } + #endregion 转换函数 #region 数据检查 @@ -857,6 +883,55 @@ public class Utils return false; } + public static bool IsPackagedInstall() + { + try + { + if (IsWindows() || IsOSX()) + { + return false; + } + + if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("APPIMAGE"))) + { + return true; + } + + var exePath = GetExePath(); + var baseDir = string.IsNullOrEmpty(exePath) ? StartupPath() : Path.GetDirectoryName(exePath) ?? ""; + var p = baseDir.Replace('\\', '/'); + + if (string.IsNullOrEmpty(p)) + { + return false; + } + + if (p.Contains("/.mount_", StringComparison.Ordinal)) + { + return true; + } + + if (p.StartsWith("/opt/v2rayN", StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + if (p.StartsWith("/usr/lib/v2rayN", StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + if (p.StartsWith("/usr/share/v2rayN", StringComparison.OrdinalIgnoreCase)) + { + return true; + } + } + catch + { + } + return false; + } + private static async Task GetLinuxUserId() { var arg = new List() { "-c", "id -u" }; diff --git a/v2rayn/v2rayN/ServiceLib/Handler/Fmt/ClashFmt.cs b/v2rayn/v2rayN/ServiceLib/Handler/Fmt/ClashFmt.cs index f711c51fd0..6c6f2bbfe2 100644 --- a/v2rayn/v2rayN/ServiceLib/Handler/Fmt/ClashFmt.cs +++ b/v2rayn/v2rayN/ServiceLib/Handler/Fmt/ClashFmt.cs @@ -4,7 +4,7 @@ public class ClashFmt : BaseFmt { public static ProfileItem? ResolveFull(string strData, string? subRemarks) { - if (Contains(strData, "port", "socks-port", "proxies")) + if (Contains(strData, "external-controller", "-port", "proxies")) { var fileName = WriteAllText(strData, "yaml"); diff --git a/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs b/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs index 2f0f801510..306572a1da 100644 --- a/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs +++ b/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs @@ -94,17 +94,7 @@ public partial class CoreConfigSingboxService if (!simpleDNSItem.Hosts.IsNullOrEmpty()) { - var userHostsMap = simpleDNSItem.Hosts - .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) - .Select(line => line.Trim()) - .Where(line => !string.IsNullOrWhiteSpace(line) && line.Contains(' ')) - .Select(line => line.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)) - .Where(parts => parts.Length >= 2) - .GroupBy(parts => parts[0]) - .ToDictionary( - group => group.Key, - group => group.SelectMany(parts => parts.Skip(1)).ToList() - ); + var userHostsMap = Utils.ParseHostsToDictionary(simpleDNSItem.Hosts); foreach (var kvp in userHostsMap) { diff --git a/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxRoutingService.cs b/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxRoutingService.cs index 24804c50cb..0b36478540 100644 --- a/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxRoutingService.cs +++ b/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxRoutingService.cs @@ -71,6 +71,31 @@ public partial class CoreConfigSingboxService }); } + var hostsDomains = new List(); + var systemHostsMap = Utils.GetSystemHosts(); + foreach (var kvp in systemHostsMap) + { + hostsDomains.Add(kvp.Key); + } + var dnsItem = await AppManager.Instance.GetDNSItem(ECoreType.sing_box); + if (dnsItem == null || dnsItem.Enabled == false) + { + var simpleDNSItem = _config.SimpleDNSItem; + if (!simpleDNSItem.Hosts.IsNullOrEmpty()) + { + var userHostsMap = Utils.ParseHostsToDictionary(simpleDNSItem.Hosts); + foreach (var kvp in userHostsMap) + { + hostsDomains.Add(kvp.Key); + } + } + } + singboxConfig.route.rules.Add(new() + { + action = "resolve", + domain = hostsDomains, + }); + singboxConfig.route.rules.Add(new() { outbound = Global.DirectTag, diff --git a/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayDnsService.cs b/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayDnsService.cs index 6f64e92307..744286d4fa 100644 --- a/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayDnsService.cs +++ b/v2rayn/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayDnsService.cs @@ -261,17 +261,7 @@ public partial class CoreConfigV2rayService if (!simpleDNSItem.Hosts.IsNullOrEmpty()) { - var userHostsMap = simpleDNSItem.Hosts - .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) - .Select(line => line.Trim()) - .Where(line => !string.IsNullOrWhiteSpace(line) && line.Contains(' ')) - .Select(line => line.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)) - .Where(parts => parts.Length >= 2) - .GroupBy(parts => parts[0]) - .ToDictionary( - group => group.Key, - group => group.SelectMany(parts => parts.Skip(1)).ToList() - ); + var userHostsMap = Utils.ParseHostsToDictionary(simpleDNSItem.Hosts); foreach (var kvp in userHostsMap) { diff --git a/v2rayn/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs b/v2rayn/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs index 9dd43a7557..4c9c055001 100644 --- a/v2rayn/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs +++ b/v2rayn/v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs @@ -63,6 +63,16 @@ public class CheckUpdateViewModel : MyReactiveObject private CheckUpdateModel GetCheckUpdateModel(string coreType) { + if (coreType == _v2rayN && Utils.IsPackagedInstall()) + { + return new() + { + IsSelected = false, + CoreType = coreType, + Remarks = ResUI.menuCheckUpdate + " (Not Support)", + }; + } + return new() { IsSelected = _config.CheckUpdateItem.SelectedCoreTypes?.Contains(coreType) ?? true, @@ -104,6 +114,11 @@ public class CheckUpdateViewModel : MyReactiveObject } else if (item.CoreType == _v2rayN) { + if (Utils.IsPackagedInstall()) + { + await UpdateView(_v2rayN, "Not Support"); + continue; + } await CheckUpdateN(EnableCheckPreReleaseUpdate); } else if (item.CoreType == ECoreType.Xray.ToString()) diff --git a/v2rayn/v2rayN/v2rayN.Desktop/Views/AddServerWindow.axaml b/v2rayn/v2rayN/v2rayN.Desktop/Views/AddServerWindow.axaml index ab6bc22320..7aa6a0be30 100644 --- a/v2rayn/v2rayN/v2rayN.Desktop/Views/AddServerWindow.axaml +++ b/v2rayn/v2rayN/v2rayN.Desktop/Views/AddServerWindow.axaml @@ -400,7 +400,7 @@ Grid.Column="1" Width="400" Margin="{StaticResource Margin4}" - Watermark="1000:2000,3000:4000" /> + Watermark="1000-2000,3000,4000" /> \d+)' - _TESTS = [{ - # Crackle is available in the United States and territories - 'url': 'https://www.crackle.com/thanksgiving/2510064', - 'info_dict': { - 'id': '2510064', - 'ext': 'mp4', - 'title': 'Touch Football', - 'description': 'md5:cfbb513cf5de41e8b56d7ab756cff4df', - 'duration': 1398, - 'view_count': int, - 'average_rating': 0, - 'age_limit': 17, - 'genre': 'Comedy', - 'creator': 'Daniel Powell', - 'artist': 'Chris Elliott, Amy Sedaris', - 'release_year': 2016, - 'series': 'Thanksgiving', - 'episode': 'Touch Football', - 'season_number': 1, - 'episode_number': 1, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - 'expected_warnings': [ - 'Trying with a list of known countries', - ], - }, { - 'url': 'https://www.sonycrackle.com/thanksgiving/2510064', - 'only_matching': True, - }] - - _MEDIA_FILE_SLOTS = { - '360p.mp4': { - 'width': 640, - 'height': 360, - }, - '480p.mp4': { - 'width': 768, - 'height': 432, - }, - '480p_1mbps.mp4': { - 'width': 852, - 'height': 480, - }, - } - - def _download_json(self, url, *args, **kwargs): - # Authorization generation algorithm is reverse engineered from: - # https://www.sonycrackle.com/static/js/main.ea93451f.chunk.js - timestamp = time.strftime('%Y%m%d%H%M', time.gmtime()) - h = hmac.new(b'IGSLUQCBDFHEOIFM', '|'.join([url, timestamp]).encode(), hashlib.sha1).hexdigest().upper() - headers = { - 'Accept': 'application/json', - 'Authorization': '|'.join([h, timestamp, '117', '1']), - } - return InfoExtractor._download_json(self, url, *args, headers=headers, **kwargs) - - def _real_extract(self, url): - video_id = self._match_id(url) - - geo_bypass_country = self.get_param('geo_bypass_country', None) - countries = orderedSet((geo_bypass_country, 'US', 'AU', 'CA', 'AS', 'FM', 'GU', 'MP', 'PR', 'PW', 'MH', 'VI', '')) - num_countries, num = len(countries) - 1, 0 - - media = {} - for num, country in enumerate(countries): - if num == 1: # start hard-coded list - self.report_warning('%s. Trying with a list of known countries' % ( - f'Unable to obtain video formats from {geo_bypass_country} API' if geo_bypass_country - else 'No country code was given using --geo-bypass-country')) - elif num == num_countries: # end of list - geo_info = self._download_json( - 'https://web-api-us.crackle.com/Service.svc/geo/country', - video_id, fatal=False, note='Downloading geo-location information from crackle API', - errnote='Unable to fetch geo-location information from crackle') or {} - country = geo_info.get('CountryCode') - if country is None: - continue - self.to_screen(f'{self.IE_NAME} identified country as {country}') - if country in countries: - self.to_screen(f'Downloading from {country} API was already attempted. Skipping...') - continue - - if country is None: - continue - try: - media = self._download_json( - f'https://web-api-us.crackle.com/Service.svc/details/media/{video_id}/{country}?disableProtocols=true', - video_id, note=f'Downloading media JSON from {country} API', - errnote='Unable to download media JSON') - except ExtractorError as e: - # 401 means geo restriction, trying next country - if isinstance(e.cause, HTTPError) and e.cause.status == 401: - continue - raise - - status = media.get('status') - if status.get('messageCode') != '0': - raise ExtractorError( - '{} said: {} {} - {}'.format( - self.IE_NAME, status.get('messageCodeDescription'), status.get('messageCode'), status.get('message')), - expected=True) - - # Found video formats - if isinstance(media.get('MediaURLs'), list): - break - - ignore_no_formats = self.get_param('ignore_no_formats_error') - - if not media or (not media.get('MediaURLs') and not ignore_no_formats): - raise ExtractorError( - 'Unable to access the crackle API. Try passing your country code ' - 'to --geo-bypass-country. If it still does not work and the ' - 'video is available in your country') - title = media['Title'] - - formats, subtitles = [], {} - has_drm = False - for e in media.get('MediaURLs') or []: - if e.get('UseDRM'): - has_drm = True - format_url = url_or_none(e.get('DRMPath')) - else: - format_url = url_or_none(e.get('Path')) - if not format_url: - continue - ext = determine_ext(format_url) - if ext == 'm3u8': - fmts, subs = self._extract_m3u8_formats_and_subtitles( - format_url, video_id, 'mp4', entry_protocol='m3u8_native', - m3u8_id='hls', fatal=False) - formats.extend(fmts) - subtitles = self._merge_subtitles(subtitles, subs) - elif ext == 'mpd': - fmts, subs = self._extract_mpd_formats_and_subtitles( - format_url, video_id, mpd_id='dash', fatal=False) - formats.extend(fmts) - subtitles = self._merge_subtitles(subtitles, subs) - elif format_url.endswith('.ism/Manifest'): - fmts, subs = self._extract_ism_formats_and_subtitles( - format_url, video_id, ism_id='mss', fatal=False) - formats.extend(fmts) - subtitles = self._merge_subtitles(subtitles, subs) - else: - mfs_path = e.get('Type') - mfs_info = self._MEDIA_FILE_SLOTS.get(mfs_path) - if not mfs_info: - continue - formats.append({ - 'url': format_url, - 'format_id': 'http-' + mfs_path.split('.')[0], - 'width': mfs_info['width'], - 'height': mfs_info['height'], - }) - if not formats and has_drm: - self.report_drm(video_id) - - description = media.get('Description') - duration = int_or_none(media.get( - 'DurationInSeconds')) or parse_duration(media.get('Duration')) - view_count = int_or_none(media.get('CountViews')) - average_rating = float_or_none(media.get('UserRating')) - age_limit = parse_age_limit(media.get('Rating')) - genre = media.get('Genre') - release_year = int_or_none(media.get('ReleaseYear')) - creator = media.get('Directors') - artist = media.get('Cast') - - if media.get('MediaTypeDisplayValue') == 'Full Episode': - series = media.get('ShowName') - episode = title - season_number = int_or_none(media.get('Season')) - episode_number = int_or_none(media.get('Episode')) - else: - series = episode = season_number = episode_number = None - - cc_files = media.get('ClosedCaptionFiles') - if isinstance(cc_files, list): - for cc_file in cc_files: - if not isinstance(cc_file, dict): - continue - cc_url = url_or_none(cc_file.get('Path')) - if not cc_url: - continue - lang = cc_file.get('Locale') or 'en' - subtitles.setdefault(lang, []).append({'url': cc_url}) - - thumbnails = [] - images = media.get('Images') - if isinstance(images, list): - for image_key, image_url in images.items(): - mobj = re.search(r'Img_(\d+)[xX](\d+)', image_key) - if not mobj: - continue - thumbnails.append({ - 'url': image_url, - 'width': int(mobj.group(1)), - 'height': int(mobj.group(2)), - }) - - return { - 'id': video_id, - 'title': title, - 'description': description, - 'duration': duration, - 'view_count': view_count, - 'average_rating': average_rating, - 'age_limit': age_limit, - 'genre': genre, - 'creator': creator, - 'artist': artist, - 'release_year': release_year, - 'series': series, - 'episode': episode, - 'season_number': season_number, - 'episode_number': episode_number, - 'thumbnails': thumbnails, - 'subtitles': subtitles, - 'formats': formats, - } diff --git a/yt-dlp/yt_dlp/extractor/cwtv.py b/yt-dlp/yt_dlp/extractor/cwtv.py deleted file mode 100644 index cdb29fcee7..0000000000 --- a/yt-dlp/yt_dlp/extractor/cwtv.py +++ /dev/null @@ -1,180 +0,0 @@ -import re - -from .common import InfoExtractor -from ..utils import ( - ExtractorError, - int_or_none, - parse_age_limit, - parse_iso8601, - parse_qs, - smuggle_url, - str_or_none, - update_url_query, -) -from ..utils.traversal import traverse_obj - - -class CWTVIE(InfoExtractor): - IE_NAME = 'cwtv' - _VALID_URL = r'https?://(?:www\.)?cw(?:tv(?:pr)?|seed)\.com/(?:shows/)?(?:[^/]+/)+[^?]*\?.*\b(?:play|watch|guid)=(?P[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12})' - _TESTS = [{ - 'url': 'https://www.cwtv.com/shows/continuum/a-stitch-in-time/?play=9149a1e1-4cb2-46d7-81b2-47d35bbd332b', - 'info_dict': { - 'id': '9149a1e1-4cb2-46d7-81b2-47d35bbd332b', - 'ext': 'mp4', - 'title': 'A Stitch in Time', - 'description': r're:(?s)City Protective Services officer Kiera Cameron is transported from 2077.+', - 'thumbnail': r're:https?://.+\.jpe?g', - 'duration': 2632, - 'timestamp': 1736928000, - 'uploader': 'CWTV', - 'chapters': 'count:5', - 'series': 'Continuum', - 'season_number': 1, - 'episode_number': 1, - 'age_limit': 14, - 'upload_date': '20250115', - 'season': 'Season 1', - 'episode': 'Episode 1', - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, { - 'url': 'http://cwtv.com/shows/arrow/legends-of-yesterday/?play=6b15e985-9345-4f60-baf8-56e96be57c63', - 'info_dict': { - 'id': '6b15e985-9345-4f60-baf8-56e96be57c63', - 'ext': 'mp4', - 'title': 'Legends of Yesterday', - 'description': r're:(?s)Oliver and Barry Allen take Kendra Saunders and Carter Hall to a remote.+', - 'duration': 2665, - 'series': 'Arrow', - 'season_number': 4, - 'season': '4', - 'episode_number': 8, - 'upload_date': '20151203', - 'timestamp': 1449122100, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - 'skip': 'redirect to http://cwtv.com/shows/arrow/', - }, { - 'url': 'http://www.cwseed.com/shows/whose-line-is-it-anyway/jeff-davis-4/?play=24282b12-ead2-42f2-95ad-26770c2c6088', - 'info_dict': { - 'id': '24282b12-ead2-42f2-95ad-26770c2c6088', - 'ext': 'mp4', - 'title': 'Jeff Davis 4', - 'description': 'Jeff Davis is back to make you laugh.', - 'duration': 1263, - 'series': 'Whose Line Is It Anyway?', - 'season_number': 11, - 'episode_number': 20, - 'upload_date': '20151006', - 'timestamp': 1444107300, - 'age_limit': 14, - 'uploader': 'CWTV', - 'thumbnail': r're:https?://.+\.jpe?g', - 'chapters': 'count:4', - 'episode': 'Episode 20', - 'season': 'Season 11', - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, { - 'url': 'http://cwtv.com/thecw/chroniclesofcisco/?play=8adebe35-f447-465f-ab52-e863506ff6d6', - 'only_matching': True, - }, { - 'url': 'http://cwtvpr.com/the-cw/video?watch=9eee3f60-ef4e-440b-b3b2-49428ac9c54e', - 'only_matching': True, - }, { - 'url': 'http://cwtv.com/shows/arrow/legends-of-yesterday/?watch=6b15e985-9345-4f60-baf8-56e96be57c63', - 'only_matching': True, - }, { - 'url': 'http://www.cwtv.com/movies/play/?guid=0a8e8b5b-1356-41d5-9a6a-4eda1a6feb6c', - 'only_matching': True, - }] - - def _real_extract(self, url): - video_id = self._match_id(url) - data = self._download_json( - f'https://images.cwtv.com/feed/app-2/video-meta/apiversion_22/device_android/guid_{video_id}', video_id) - if traverse_obj(data, 'result') != 'ok': - raise ExtractorError(traverse_obj(data, (('error_msg', 'msg'), {str}, any)), expected=True) - video_data = data['video'] - title = video_data['title'] - mpx_url = update_url_query( - video_data.get('mpx_url') or f'https://link.theplatform.com/s/cwtv/media/guid/2703454149/{video_id}', - {'formats': 'M3U+none'}) - - season = str_or_none(video_data.get('season')) - episode = str_or_none(video_data.get('episode')) - if episode and season: - episode = episode[len(season):] - - return { - '_type': 'url_transparent', - 'id': video_id, - 'title': title, - 'url': smuggle_url(mpx_url, {'force_smil_url': True}), - 'description': video_data.get('description_long'), - 'duration': int_or_none(video_data.get('duration_secs')), - 'series': video_data.get('series_name'), - 'season_number': int_or_none(season), - 'episode_number': int_or_none(episode), - 'timestamp': parse_iso8601(video_data.get('start_time')), - 'age_limit': parse_age_limit(video_data.get('rating')), - 'ie_key': 'ThePlatform', - 'thumbnail': video_data.get('large_thumbnail'), - } - - -class CWTVMovieIE(InfoExtractor): - IE_NAME = 'cwtv:movie' - _VALID_URL = r'https?://(?:www\.)?cwtv\.com/shows/(?P[\w-]+)/?\?(?:[^#]+&)?viewContext=Movies' - _TESTS = [{ - 'url': 'https://www.cwtv.com/shows/the-crush/?viewContext=Movies+Swimlane', - 'info_dict': { - 'id': '0a8e8b5b-1356-41d5-9a6a-4eda1a6feb6c', - 'ext': 'mp4', - 'title': 'The Crush', - 'upload_date': '20241112', - 'description': 'md5:1549acd90dff4a8273acd7284458363e', - 'chapters': 'count:9', - 'timestamp': 1731398400, - 'age_limit': 16, - 'duration': 5337, - 'series': 'The Crush', - 'season': 'Season 1', - 'uploader': 'CWTV', - 'season_number': 1, - 'episode': 'Episode 1', - 'episode_number': 1, - 'thumbnail': r're:https?://.+\.jpe?g', - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }] - _UUID_RE = r'[\da-f]{8}-(?:[\da-f]{4}-){3}[\da-f]{12}' - - def _real_extract(self, url): - display_id = self._match_id(url) - webpage = self._download_webpage(url, display_id) - app_url = ( - self._html_search_meta('al:ios:url', webpage, default=None) - or self._html_search_meta('al:android:url', webpage, default=None)) - video_id = ( - traverse_obj(parse_qs(app_url), ('video_id', 0, {lambda x: re.fullmatch(self._UUID_RE, x)}, 0)) - or self._search_regex([ - rf'CWTV\.Site\.curPlayingGUID\s*=\s*["\']({self._UUID_RE})', - rf'CWTV\.Site\.viewInAppURL\s*=\s*["\']/shows/[\w-]+/watch-in-app/\?play=({self._UUID_RE})', - ], webpage, 'video ID')) - - return self.url_result( - f'https://www.cwtv.com/shows/{display_id}/{display_id}/?play={video_id}', CWTVIE, video_id) diff --git a/yt-dlp/yt_dlp/extractor/loco.py b/yt-dlp/yt_dlp/extractor/loco.py index 6c9a255678..c3d4434d90 100644 --- a/yt-dlp/yt_dlp/extractor/loco.py +++ b/yt-dlp/yt_dlp/extractor/loco.py @@ -37,7 +37,7 @@ class LocoIE(InfoExtractor): }, }, { 'url': 'https://loco.com/stream/c64916eb-10fb-46a9-9a19-8c4b7ed064e7', - 'md5': '45ebc8a47ee1c2240178757caf8881b5', + 'md5': '8b9bda03eba4d066928ae8d71f19befb', 'info_dict': { 'id': 'c64916eb-10fb-46a9-9a19-8c4b7ed064e7', 'ext': 'mp4', @@ -55,9 +55,9 @@ class LocoIE(InfoExtractor): 'tags': ['Gameplay'], 'series': 'GTA 5', 'timestamp': 1740612872, - 'modified_timestamp': 1740613037, + 'modified_timestamp': 1750948439, 'upload_date': '20250226', - 'modified_date': '20250226', + 'modified_date': '20250626', }, }, { # Requires video authorization @@ -123,8 +123,8 @@ class LocoIE(InfoExtractor): def _real_extract(self, url): video_type, video_id = self._match_valid_url(url).group('type', 'id') webpage = self._download_webpage(url, video_id) - stream = traverse_obj(self._search_nextjs_data(webpage, video_id), ( - 'props', 'pageProps', ('liveStreamData', 'stream', 'liveStream'), {dict}, any, {require('stream info')})) + stream = traverse_obj(self._search_nextjs_v13_data(webpage, video_id), ( + ..., (None, 'ssrData'), ('liveStreamData', 'stream', 'liveStream'), {dict}, any, {require('stream info')})) if access_token := self._get_access_token(video_id): self._request_webpage( diff --git a/yt-dlp/yt_dlp/extractor/onsen.py b/yt-dlp/yt_dlp/extractor/onsen.py new file mode 100644 index 0000000000..6424d7b154 --- /dev/null +++ b/yt-dlp/yt_dlp/extractor/onsen.py @@ -0,0 +1,151 @@ +import base64 +import json + +from .common import InfoExtractor +from ..networking.exceptions import HTTPError +from ..utils import ( + ExtractorError, + clean_html, + int_or_none, + parse_qs, + str_or_none, + strftime_or_none, + update_url, + update_url_query, + url_or_none, +) +from ..utils.traversal import traverse_obj + + +class OnsenIE(InfoExtractor): + IE_NAME = 'onsen' + IE_DESC = 'インターネットラジオステーション<音泉>' + + _BASE_URL = 'https://www.onsen.ag' + _HEADERS = {'Referer': f'{_BASE_URL}/'} + _NETRC_MACHINE = 'onsen' + _VALID_URL = r'https?://(?:(?:share|www)\.)onsen\.ag/program/(?P[^/?#]+)' + _TESTS = [{ + 'url': 'https://share.onsen.ag/program/onsenking?p=90&c=MTA0NjI', + 'info_dict': { + 'id': '10462', + 'ext': 'm4a', + 'title': '第SP回', + 'cast': 'count:3', + 'description': 'md5:de62c80a41c4c8d84da53a1ee681ad18', + 'display_id': 'MTA0NjI=', + 'media_type': 'sound', + 'section_start': 0, + 'series': '音泉キング「下野紘」のラジオ きみはもちろん、<音泉>ファミリーだよね?', + 'series_id': 'onsenking', + 'tags': 'count:2', + 'thumbnail': r're:https?://d3bzklg4lms4gh\.cloudfront\.net/program_info/image/default/production/.+', + 'upload_date': '20220627', + 'webpage_url': 'https://www.onsen.ag/program/onsenking?c=MTA0NjI=', + }, + }, { + 'url': 'https://share.onsen.ag/program/girls-band-cry-radio?p=370&c=MTgwMDE', + 'info_dict': { + 'id': '18001', + 'ext': 'mp4', + 'title': '第4回', + 'cast': 'count:5', + 'description': 'md5:bbca8a389d99c90cbbce8f383c85fedd', + 'display_id': 'MTgwMDE=', + 'media_type': 'movie', + 'section_start': 0, + 'series': 'TVアニメ『ガールズバンドクライ』WEBラジオ「ガールズバンドクライ~ラジオにも全部ぶち込め。~」', + 'series_id': 'girls-band-cry-radio', + 'tags': 'count:3', + 'thumbnail': r're:https?://d3bzklg4lms4gh\.cloudfront\.net/program_info/image/default/production/.+', + 'upload_date': '20240425', + 'webpage_url': 'https://www.onsen.ag/program/girls-band-cry-radio?c=MTgwMDE=', + }, + 'skip': 'Only available for premium supporters', + }, { + 'url': 'https://www.onsen.ag/program/uma', + 'info_dict': { + 'id': 'uma', + 'title': 'UMA YELL RADIO', + }, + 'playlist_mincount': 35, + }] + + @staticmethod + def _get_encoded_id(program): + return base64.urlsafe_b64encode(str(program['id']).encode()).decode() + + def _perform_login(self, username, password): + sign_in = self._download_json( + f'{self._BASE_URL}/web_api/signin', None, 'Logging in', headers={ + 'Accept': 'application/json', + 'Content-Type': 'application/json', + }, data=json.dumps({ + 'session': { + 'email': username, + 'password': password, + }, + }).encode(), expected_status=401) + + if sign_in.get('error'): + raise ExtractorError('Invalid username or password', expected=True) + + def _real_extract(self, url): + program_id = self._match_id(url) + try: + programs = self._download_json( + f'{self._BASE_URL}/web_api/programs/{program_id}', program_id) + except ExtractorError as e: + if isinstance(e.cause, HTTPError) and e.cause.status == 404: + raise ExtractorError('Invalid URL', expected=True) + raise + + query = {k: v[-1] for k, v in parse_qs(url).items() if v} + if 'c' not in query: + entries = [ + self.url_result(update_url_query(url, {'c': self._get_encoded_id(program)}), OnsenIE) + for program in traverse_obj(programs, ('contents', lambda _, v: v['id'])) + ] + + return self.playlist_result( + entries, program_id, traverse_obj(programs, ('program_info', 'title', {clean_html}))) + + raw_id = base64.urlsafe_b64decode(f'{query["c"]}===').decode() + p_keys = ('contents', lambda _, v: v['id'] == int(raw_id)) + + program = traverse_obj(programs, (*p_keys, any)) + if not program: + raise ExtractorError( + 'This program is no longer available', expected=True) + m3u8_url = traverse_obj(program, ('streaming_url', {url_or_none})) + if not m3u8_url: + self.raise_login_required( + 'This program is only available for premium supporters') + + display_id = self._get_encoded_id(program) + date_str = self._search_regex( + rf'{program_id}0?(\d{{6}})', m3u8_url, 'date string', default=None) + + return { + 'display_id': display_id, + 'formats': self._extract_m3u8_formats(m3u8_url, raw_id, headers=self._HEADERS), + 'http_headers': self._HEADERS, + 'section_start': int_or_none(query.get('t', 0)), + 'upload_date': strftime_or_none(f'20{date_str}'), + 'webpage_url': f'{self._BASE_URL}/program/{program_id}?c={display_id}', + **traverse_obj(program, { + 'id': ('id', {int}, {str_or_none}), + 'title': ('title', {clean_html}), + 'media_type': ('media_type', {str}), + 'thumbnail': ('poster_image_url', {url_or_none}, {update_url(query=None)}), + }), + **traverse_obj(programs, { + 'cast': (('performers', (*p_keys, 'guests')), ..., 'name', {str}, filter), + 'series_id': ('directory_name', {str}), + }), + **traverse_obj(programs, ('program_info', { + 'description': ('description', {clean_html}, filter), + 'series': ('title', {clean_html}), + 'tags': ('hashtag_list', ..., {str}, filter), + })), + } diff --git a/yt-dlp/yt_dlp/extractor/paramountplus.py b/yt-dlp/yt_dlp/extractor/paramountplus.py deleted file mode 100644 index 317f53b2bc..0000000000 --- a/yt-dlp/yt_dlp/extractor/paramountplus.py +++ /dev/null @@ -1,201 +0,0 @@ -import itertools - -from .cbs import CBSBaseIE -from .common import InfoExtractor -from ..utils import ( - ExtractorError, - int_or_none, - url_or_none, -) - - -class ParamountPlusIE(CBSBaseIE): - _VALID_URL = r'''(?x) - (?: - paramountplus:| - https?://(?:www\.)?(?: - paramountplus\.com/(?:shows|movies)/(?:video|[^/]+/video|[^/]+)/ - )(?P[\w-]+))''' - - # All tests are blocked outside US - _TESTS = [{ - 'url': 'https://www.paramountplus.com/shows/video/Oe44g5_NrlgiZE3aQVONleD6vXc8kP0k/', - 'info_dict': { - 'id': 'Oe44g5_NrlgiZE3aQVONleD6vXc8kP0k', - 'ext': 'mp4', - 'title': 'CatDog - Climb Every CatDog/The Canine Mutiny', - 'description': 'md5:7ac835000645a69933df226940e3c859', - 'duration': 1426, - 'timestamp': 920264400, - 'upload_date': '19990301', - 'uploader': 'CBSI-NEW', - 'episode_number': 5, - 'thumbnail': r're:https?://.+\.jpg$', - 'season': 'Season 2', - 'chapters': 'count:3', - 'episode': 'Episode 5', - 'season_number': 2, - 'series': 'CatDog', - }, - 'params': { - 'skip_download': 'm3u8', - }, - }, { - 'url': 'https://www.paramountplus.com/shows/video/6hSWYWRrR9EUTz7IEe5fJKBhYvSUfexd/', - 'info_dict': { - 'id': '6hSWYWRrR9EUTz7IEe5fJKBhYvSUfexd', - 'ext': 'mp4', - 'title': '7/23/21 WEEK IN REVIEW (Rep. Jahana Hayes/Howard Fineman/Sen. Michael Bennet/Sheera Frenkel & Cecilia Kang)', - 'description': 'md5:f4adcea3e8b106192022e121f1565bae', - 'duration': 2506, - 'timestamp': 1627063200, - 'upload_date': '20210723', - 'uploader': 'CBSI-NEW', - 'episode_number': 81, - 'thumbnail': r're:https?://.+\.jpg$', - 'season': 'Season 2', - 'chapters': 'count:4', - 'episode': 'Episode 81', - 'season_number': 2, - 'series': 'Tooning Out The News', - }, - 'params': { - 'skip_download': 'm3u8', - }, - }, { - 'url': 'https://www.paramountplus.com/movies/video/vM2vm0kE6vsS2U41VhMRKTOVHyQAr6pC/', - 'info_dict': { - 'id': 'vM2vm0kE6vsS2U41VhMRKTOVHyQAr6pC', - 'ext': 'mp4', - 'title': 'Daddy\'s Home', - 'upload_date': '20151225', - 'description': 'md5:9a6300c504d5e12000e8707f20c54745', - 'uploader': 'CBSI-NEW', - 'timestamp': 1451030400, - 'thumbnail': r're:https?://.+\.jpg$', - 'chapters': 'count:0', - 'duration': 5761, - 'series': 'Paramount+ Movies', - }, - 'params': { - 'skip_download': 'm3u8', - }, - 'skip': 'DRM', - }, { - 'url': 'https://www.paramountplus.com/movies/video/5EKDXPOzdVf9voUqW6oRuocyAEeJGbEc/', - 'info_dict': { - 'id': '5EKDXPOzdVf9voUqW6oRuocyAEeJGbEc', - 'ext': 'mp4', - 'uploader': 'CBSI-NEW', - 'description': 'md5:bc7b6fea84ba631ef77a9bda9f2ff911', - 'timestamp': 1577865600, - 'title': 'Sonic the Hedgehog', - 'upload_date': '20200101', - 'thumbnail': r're:https?://.+\.jpg$', - 'chapters': 'count:0', - 'duration': 5932, - 'series': 'Paramount+ Movies', - }, - 'params': { - 'skip_download': 'm3u8', - }, - 'skip': 'DRM', - }, { - 'url': 'https://www.paramountplus.com/shows/the-real-world/video/mOVeHeL9ub9yWdyzSZFYz8Uj4ZBkVzQg/the-real-world-reunion/', - 'only_matching': True, - }, { - 'url': 'https://www.paramountplus.com/shows/video/mOVeHeL9ub9yWdyzSZFYz8Uj4ZBkVzQg/', - 'only_matching': True, - }, { - 'url': 'https://www.paramountplus.com/movies/video/W0VyStQqUnqKzJkrpSAIARuCc9YuYGNy/', - 'only_matching': True, - }, { - 'url': 'https://www.paramountplus.com/movies/paw-patrol-the-movie/W0VyStQqUnqKzJkrpSAIARuCc9YuYGNy/', - 'only_matching': True, - }] - - def _extract_video_info(self, content_id, mpx_acc=2198311517): - items_data = self._download_json( - f'https://www.paramountplus.com/apps-api/v2.0/androidtv/video/cid/{content_id}.json', - content_id, query={ - 'locale': 'en-us', - 'at': 'ABCXgPuoStiPipsK0OHVXIVh68zNys+G4f7nW9R6qH68GDOcneW6Kg89cJXGfiQCsj0=', - }, headers=self.geo_verification_headers()) - - asset_types = { - item.get('assetType'): { - 'format': 'SMIL', - 'formats': 'M3U+none,MPEG4', # '+none' specifies ProtectionScheme (no DRM) - } for item in items_data['itemList'] - } - item = items_data['itemList'][-1] - - info, error = {}, None - metadata = { - 'title': item.get('title'), - 'series': item.get('seriesTitle'), - 'season_number': int_or_none(item.get('seasonNum')), - 'episode_number': int_or_none(item.get('episodeNum')), - 'duration': int_or_none(item.get('duration')), - 'thumbnail': url_or_none(item.get('thumbnail')), - } - try: - info = self._extract_common_video_info(content_id, asset_types, mpx_acc, extra_info=metadata) - except ExtractorError as e: - error = e - - # Check for DRM formats to give appropriate error - if not info.get('formats'): - for query in asset_types.values(): - query['formats'] = 'MPEG-DASH,M3U,MPEG4' # allows DRM formats - - try: - drm_info = self._extract_common_video_info(content_id, asset_types, mpx_acc, extra_info=metadata) - except ExtractorError: - if error: - raise error from None - raise - if drm_info['formats']: - self.report_drm(content_id) - elif error: - raise error - - return info - - -class ParamountPlusSeriesIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?paramountplus\.com/shows/(?P[a-zA-Z0-9-_]+)/?(?:[#?]|$)' - _TESTS = [{ - 'url': 'https://www.paramountplus.com/shows/drake-josh', - 'playlist_mincount': 50, - 'info_dict': { - 'id': 'drake-josh', - }, - }, { - 'url': 'https://www.paramountplus.com/shows/hawaii_five_0/', - 'playlist_mincount': 240, - 'info_dict': { - 'id': 'hawaii_five_0', - }, - }, { - 'url': 'https://www.paramountplus.com/shows/spongebob-squarepants/', - 'playlist_mincount': 248, - 'info_dict': { - 'id': 'spongebob-squarepants', - }, - }] - - def _entries(self, show_name): - for page in itertools.count(): - show_json = self._download_json( - f'https://www.paramountplus.com/shows/{show_name}/xhr/episodes/page/{page}/size/50/xs/0/season/0', show_name) - if not show_json.get('success'): - return - for episode in show_json['result']['data']: - yield self.url_result( - 'https://www.paramountplus.com{}'.format(episode['url']), - ie=ParamountPlusIE.ie_key(), video_id=episode['content_id']) - - def _real_extract(self, url): - show_name = self._match_id(url) - return self.playlist_result(self._entries(show_name), playlist_id=show_name) diff --git a/yt-dlp/yt_dlp/extractor/rutv.py b/yt-dlp/yt_dlp/extractor/rutv.py deleted file mode 100644 index 11270a1f2c..0000000000 --- a/yt-dlp/yt_dlp/extractor/rutv.py +++ /dev/null @@ -1,191 +0,0 @@ -import re - -from .common import InfoExtractor -from ..utils import ExtractorError, int_or_none, str_to_int - - -class RUTVIE(InfoExtractor): - IE_DESC = 'RUTV.RU' - _VALID_URL = r'''(?x) - https?:// - (?:test)?player\.(?:rutv\.ru|vgtrk\.com)/ - (?P - flash\d+v/container\.swf\?id=| - iframe/(?Pswf|video|live)/id/| - index/iframe/cast_id/ - ) - (?P\d+) - ''' - _EMBED_REGEX = [ - r']+?src=(["\'])(?Phttps?://(?:test)?player\.(?:rutv\.ru|vgtrk\.com)/(?:iframe/(?:swf|video|live)/id|index/iframe/cast_id)/.+?)\1', - r']+?property=(["\'])og:video\1[^>]+?content=(["\'])(?Phttps?://(?:test)?player\.(?:rutv\.ru|vgtrk\.com)/flash\d+v/container\.swf\?id=.+?\2)', - ] - - _TESTS = [{ - 'url': 'http://player.rutv.ru/flash2v/container.swf?id=774471&sid=kultura&fbv=true&isPlay=true&ssl=false&i=560&acc_video_id=episode_id/972347/video_id/978186/brand_id/31724', - 'info_dict': { - 'id': '774471', - 'ext': 'mp4', - 'title': 'Монологи на все времена. Концерт', - 'description': 'md5:18d8b5e6a41fb1faa53819471852d5d5', - 'duration': 2906, - 'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg', - }, - 'params': {'skip_download': 'm3u8'}, - }, { - 'url': 'https://player.vgtrk.com/flash2v/container.swf?id=774016&sid=russiatv&fbv=true&isPlay=true&ssl=false&i=560&acc_video_id=episode_id/972098/video_id/977760/brand_id/57638', - 'info_dict': { - 'id': '774016', - 'ext': 'mp4', - 'title': 'Чужой в семье Сталина', - 'description': '', - 'duration': 2539, - }, - 'skip': 'Invalid URL', - }, { - 'url': 'http://player.rutv.ru/iframe/swf/id/766888/sid/hitech/?acc_video_id=4000', - 'info_dict': { - 'id': '766888', - 'ext': 'mp4', - 'title': 'Вести.net: интернет-гиганты начали перетягивание программных "одеял"', - 'description': 'md5:65ddd47f9830c4f42ed6475f8730c995', - 'duration': 279, - 'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg', - }, - 'params': {'skip_download': 'm3u8'}, - }, { - 'url': 'http://player.rutv.ru/iframe/video/id/771852/start_zoom/true/showZoomBtn/false/sid/russiatv/?acc_video_id=episode_id/970443/video_id/975648/brand_id/5169', - 'info_dict': { - 'id': '771852', - 'ext': 'mp4', - 'title': 'Прямой эфир. Жертвы загадочной болезни: смерть от старости в 17 лет', - 'description': 'md5:b81c8c55247a4bd996b43ce17395b2d8', - 'duration': 3096, - 'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg', - }, - 'params': {'skip_download': 'm3u8'}, - }, { - 'url': 'http://player.rutv.ru/iframe/live/id/51499/showZoomBtn/false/isPlay/true/sid/sochi2014', - 'info_dict': { - 'id': '51499', - 'ext': 'flv', - 'title': 'Сочи-2014. Биатлон. Индивидуальная гонка. Мужчины ', - 'description': 'md5:9e0ed5c9d2fa1efbfdfed90c9a6d179c', - }, - 'skip': 'Invalid URL', - }, { - 'url': 'http://player.rutv.ru/iframe/live/id/21/showZoomBtn/false/isPlay/true/', - 'info_dict': { - 'id': '21', - 'ext': 'mp4', - 'title': str, - 'is_live': True, - }, - 'skip': 'Invalid URL', - }, { - 'url': 'https://testplayer.vgtrk.com/iframe/live/id/19201/showZoomBtn/false/isPlay/true/', - 'only_matching': True, - }] - _WEBPAGE_TESTS = [{ - 'url': 'http://istoriya-teatra.ru/news/item/f00/s05/n0000545/index.shtml', - 'info_dict': { - 'id': '1952012', - 'ext': 'mp4', - 'title': 'Новости культуры. Эфир от 10.10.2019 (23:30). Театр Сатиры отмечает день рождения премьерой', - 'description': 'md5:fced27112ff01ff8fc4a452fc088bad6', - 'duration': 191, - 'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg', - }, - 'params': {'skip_download': 'm3u8'}, - }] - - def _real_extract(self, url): - mobj = self._match_valid_url(url) - video_id = mobj.group('id') - video_path = mobj.group('path') - - if re.match(r'flash\d+v', video_path): - video_type = 'video' - elif video_path.startswith('iframe'): - video_type = mobj.group('type') - if video_type == 'swf': - video_type = 'video' - elif video_path.startswith('index/iframe/cast_id'): - video_type = 'live' - - is_live = video_type == 'live' - - json_data = self._download_json( - 'http://player.vgtrk.com/iframe/data{}/id/{}'.format('live' if is_live else 'video', video_id), - video_id, 'Downloading JSON') - - if json_data['errors']: - raise ExtractorError('{} said: {}'.format(self.IE_NAME, json_data['errors']), expected=True) - - playlist = json_data['data']['playlist'] - medialist = playlist['medialist'] - media = medialist[0] - - if media['errors']: - raise ExtractorError('{} said: {}'.format(self.IE_NAME, media['errors']), expected=True) - - view_count = int_or_none(playlist.get('count_views')) - priority_transport = playlist['priority_transport'] - - thumbnail = media['picture'] - width = int_or_none(media['width']) - height = int_or_none(media['height']) - description = media['anons'] - title = media['title'] - duration = int_or_none(media.get('duration')) - - formats = [] - subtitles = {} - - for transport, links in media['sources'].items(): - for quality, url in links.items(): - preference = -1 if priority_transport == transport else -2 - if transport == 'rtmp': - mobj = re.search(r'^(?Prtmp://[^/]+/(?P.+))/(?P.+)$', url) - if not mobj: - continue - fmt = { - 'url': mobj.group('url'), - 'play_path': mobj.group('playpath'), - 'app': mobj.group('app'), - 'page_url': 'http://player.rutv.ru', - 'player_url': 'http://player.rutv.ru/flash3v/osmf.swf?i=22', - 'rtmp_live': True, - 'ext': 'flv', - 'vbr': str_to_int(quality), - } - elif transport == 'm3u8': - fmt, subs = self._extract_m3u8_formats_and_subtitles( - url, video_id, 'mp4', quality=preference, m3u8_id='hls') - formats.extend(fmt) - self._merge_subtitles(subs, target=subtitles) - continue - else: - fmt = { - 'url': url, - } - fmt.update({ - 'width': int_or_none(quality, default=height, invscale=width, scale=height), - 'height': int_or_none(quality, default=height), - 'format_id': f'{transport}-{quality}', - 'source_preference': preference, - }) - formats.append(fmt) - - return { - 'id': video_id, - 'title': title, - 'description': description, - 'thumbnail': thumbnail, - 'view_count': view_count, - 'duration': duration, - 'formats': formats, - 'subtitles': subtitles, - 'is_live': is_live, - '_format_sort_fields': ('source', ), - } diff --git a/yt-dlp/yt_dlp/extractor/sixplay.py b/yt-dlp/yt_dlp/extractor/sixplay.py deleted file mode 100644 index 6037a35116..0000000000 --- a/yt-dlp/yt_dlp/extractor/sixplay.py +++ /dev/null @@ -1,119 +0,0 @@ -from .common import InfoExtractor -from ..utils import ( - determine_ext, - int_or_none, - parse_qs, - qualities, - try_get, -) - - -class SixPlayIE(InfoExtractor): - IE_NAME = '6play' - _VALID_URL = r'(?:6play:|https?://(?:www\.)?(?P6play\.fr|rtlplay\.be|play\.rtl\.hr|rtlmost\.hu)/.+?-c_)(?P[0-9]+)' - _TESTS = [{ - 'url': 'https://www.6play.fr/minute-par-minute-p_9533/le-but-qui-a-marque-lhistoire-du-football-francais-c_12041051', - 'md5': '31fcd112637baa0c2ab92c4fcd8baf27', - 'info_dict': { - 'id': '12041051', - 'ext': 'mp4', - 'title': 'Le but qui a marqué l\'histoire du football français !', - 'description': 'md5:b59e7e841d646ef1eb42a7868eb6a851', - }, - }, { - 'url': 'https://www.rtlplay.be/rtl-info-13h-p_8551/les-titres-du-rtlinfo-13h-c_12045869', - 'only_matching': True, - }, { - 'url': 'https://play.rtl.hr/pj-masks-p_9455/epizoda-34-sezona-1-catboyevo-cudo-na-dva-kotaca-c_11984989', - 'only_matching': True, - }, { - 'url': 'https://www.rtlmost.hu/megtorve-p_14167/megtorve-6-resz-c_12397787', - 'only_matching': True, - }] - - def _real_extract(self, url): - domain, video_id = self._match_valid_url(url).groups() - service, consumer_name = { - '6play.fr': ('6play', 'm6web'), - 'rtlplay.be': ('rtlbe_rtl_play', 'rtlbe'), - 'play.rtl.hr': ('rtlhr_rtl_play', 'rtlhr'), - 'rtlmost.hu': ('rtlhu_rtl_most', 'rtlhu'), - }.get(domain, ('6play', 'm6web')) - - data = self._download_json( - f'https://pc.middleware.6play.fr/6play/v2/platforms/m6group_web/services/{service}/videos/clip_{video_id}', - video_id, headers={ - 'x-customer-name': consumer_name, - }, query={ - 'csa': 5, - 'with': 'clips', - }) - - clip_data = data['clips'][0] - title = clip_data['title'] - - urls = [] - quality_key = qualities(['lq', 'sd', 'hq', 'hd']) - formats = [] - subtitles = {} - assets = clip_data.get('assets') or [] - for asset in assets: - asset_url = asset.get('full_physical_path') - protocol = asset.get('protocol') - if not asset_url or ((protocol == 'primetime' or asset.get('type') == 'usp_hlsfp_h264') and not ('_drmnp.ism/' in asset_url or '_unpnp.ism/' in asset_url)) or asset_url in urls: - continue - urls.append(asset_url) - container = asset.get('video_container') - ext = determine_ext(asset_url) - if protocol == 'http_subtitle' or ext == 'vtt': - subtitles.setdefault('fr', []).append({'url': asset_url}) - continue - if container == 'm3u8' or ext == 'm3u8': - if protocol == 'usp': - if parse_qs(asset_url).get('token', [None])[0]: - urlh = self._request_webpage( - asset_url, video_id, fatal=False, - headers=self.geo_verification_headers()) - if not urlh: - continue - asset_url = urlh.url - asset_url = asset_url.replace('_drmnp.ism/', '_unpnp.ism/') - for i in range(3, 0, -1): - asset_url = asset_url.replace('_sd1/', f'_sd{i}/') - m3u8_formats = self._extract_m3u8_formats( - asset_url, video_id, 'mp4', 'm3u8_native', - m3u8_id='hls', fatal=False) - formats.extend(m3u8_formats) - formats.extend(self._extract_mpd_formats( - asset_url.replace('.m3u8', '.mpd'), - video_id, mpd_id='dash', fatal=False)) - if m3u8_formats: - break - else: - formats.extend(self._extract_m3u8_formats( - asset_url, video_id, 'mp4', 'm3u8_native', - m3u8_id='hls', fatal=False)) - elif container == 'mp4' or ext == 'mp4': - quality = asset.get('video_quality') - formats.append({ - 'url': asset_url, - 'format_id': quality, - 'quality': quality_key(quality), - 'ext': ext, - }) - - def get(getter): - for src in (data, clip_data): - v = try_get(src, getter, str) - if v: - return v - - return { - 'id': video_id, - 'title': title, - 'description': get(lambda x: x['description']), - 'duration': int_or_none(clip_data.get('duration')), - 'series': get(lambda x: x['program']['title']), - 'formats': formats, - 'subtitles': subtitles, - } diff --git a/yt-dlp/yt_dlp/extractor/smotrim.py b/yt-dlp/yt_dlp/extractor/smotrim.py index d3f1b695b3..098d369daf 100644 --- a/yt-dlp/yt_dlp/extractor/smotrim.py +++ b/yt-dlp/yt_dlp/extractor/smotrim.py @@ -1,65 +1,403 @@ +import functools +import json +import re +import urllib.parse + from .common import InfoExtractor -from ..utils import ExtractorError +from ..utils import ( + OnDemandPagedList, + clean_html, + determine_ext, + extract_attributes, + int_or_none, + parse_iso8601, + str_or_none, + unescapeHTML, + url_or_none, + urljoin, +) +from ..utils.traversal import ( + find_element, + find_elements, + require, + traverse_obj, +) -class SmotrimIE(InfoExtractor): - _VALID_URL = r'https?://smotrim\.ru/(?Pbrand|video|article|live)/(?P[0-9]+)' - _TESTS = [{ # video +class SmotrimBaseIE(InfoExtractor): + _BASE_URL = 'https://smotrim.ru' + _GEO_BYPASS = False + _GEO_COUNTRIES = ['RU'] + + def _extract_from_smotrim_api(self, typ, item_id): + path = f'data{typ.replace("-", "")}/{"uid" if typ == "live" else "id"}' + data = self._download_json( + f'https://player.smotrim.ru/iframe/{path}/{item_id}/sid/smotrim', item_id) + media = traverse_obj(data, ('data', 'playlist', 'medialist', -1, {dict})) + if traverse_obj(media, ('locked', {bool})): + self.raise_login_required() + if error_msg := traverse_obj(media, ('errors', {clean_html})): + self.raise_geo_restricted(error_msg, countries=self._GEO_COUNTRIES) + + webpage_url = traverse_obj(data, ('data', 'template', 'share_url', {url_or_none})) + webpage = self._download_webpage(webpage_url, item_id) + common = { + 'thumbnail': self._html_search_meta(['og:image', 'twitter:image'], webpage, default=None), + **traverse_obj(media, { + 'id': ('id', {str_or_none}), + 'title': (('episodeTitle', 'title'), {clean_html}, filter, any), + 'channel_id': ('channelId', {str_or_none}), + 'description': ('anons', {clean_html}, filter), + 'season': ('season', {clean_html}, filter), + 'series': (('brand_title', 'brandTitle'), {clean_html}, filter, any), + 'series_id': ('brand_id', {str_or_none}), + }), + } + + if typ == 'audio': + bookmark = self._search_json( + r'class="bookmark"[^>]+value\s*=\s*"', webpage, + 'bookmark', item_id, default={}, transform_source=unescapeHTML) + + metadata = { + 'vcodec': 'none', + **common, + **traverse_obj(media, { + 'ext': ('audio_url', {determine_ext(default_ext='mp3')}), + 'duration': ('duration', {int_or_none}), + 'url': ('audio_url', {url_or_none}), + }), + **traverse_obj(bookmark, { + 'title': ('subtitle', {clean_html}), + 'timestamp': ('published', {parse_iso8601}), + }), + } + elif typ == 'audio-live': + metadata = { + 'ext': 'mp3', + 'url': traverse_obj(media, ('source', 'auto', {url_or_none})), + 'vcodec': 'none', + **common, + } + else: + formats, subtitles = [], {} + for m3u8_url in traverse_obj(media, ( + 'sources', 'm3u8', {dict.values}, ..., {url_or_none}, + )): + fmts, subs = self._extract_m3u8_formats_and_subtitles( + m3u8_url, item_id, 'mp4', m3u8_id='hls', fatal=False) + formats.extend(fmts) + self._merge_subtitles(subs, target=subtitles) + + metadata = { + 'formats': formats, + 'subtitles': subtitles, + **self._search_json_ld(webpage, item_id), + **common, + } + + return { + 'age_limit': traverse_obj(data, ('data', 'age_restrictions', {int_or_none})), + 'is_live': typ in ('audio-live', 'live'), + 'tags': traverse_obj(webpage, ( + {find_elements(cls='tags-list__link')}, ..., {clean_html}, filter, all, filter)), + 'webpage_url': webpage_url, + **metadata, + } + + +class SmotrimIE(SmotrimBaseIE): + IE_NAME = 'smotrim' + _VALID_URL = r'(?:https?:)?//(?:(?:player|www)\.)?smotrim\.ru(?:/iframe)?/video(?:/id)?/(?P\d+)' + _EMBED_REGEX = [fr']+\bsrc=["\'](?P{_VALID_URL})'] + _TESTS = [{ 'url': 'https://smotrim.ru/video/1539617', - 'md5': 'b1923a533c8cab09679789d720d0b1c5', 'info_dict': { 'id': '1539617', 'ext': 'mp4', - 'title': 'Полиглот. Китайский с нуля за 16 часов! Урок №16', - 'description': '', + 'title': 'Урок №16', + 'duration': 2631, + 'series': 'Полиглот. Китайский с нуля за 16 часов!', + 'series_id': '60562', + 'tags': 'mincount:6', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': 1466771100, + 'upload_date': '20160624', + 'view_count': int, }, - 'add_ie': ['RUTV'], - }, { # article (geo-restricted? plays fine from the US and JP) + }, { + 'url': 'https://player.smotrim.ru/iframe/video/id/2988590', + 'info_dict': { + 'id': '2988590', + 'ext': 'mp4', + 'title': 'Трейлер', + 'age_limit': 16, + 'description': 'md5:6af7e68ecf4ed7b8ff6720d20c4da47b', + 'duration': 30, + 'series': 'Мы в разводе', + 'series_id': '71624', + 'tags': 'mincount:5', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': 1750670040, + 'upload_date': '20250623', + 'view_count': int, + 'webpage_url': 'https://smotrim.ru/video/2988590', + }, + }] + _WEBPAGE_TESTS = [{ 'url': 'https://smotrim.ru/article/2813445', - 'md5': 'e0ac453952afbc6a2742e850b4dc8e77', 'info_dict': { 'id': '2431846', 'ext': 'mp4', - 'title': 'Новости культуры. Съёмки первой программы "Большие и маленькие"', - 'description': 'md5:94a4a22472da4252bf5587a4ee441b99', + 'title': 'Съёмки первой программы "Большие и маленькие"', + 'description': 'md5:446c9a5d334b995152a813946353f447', + 'duration': 240, + 'series': 'Новости культуры', + 'series_id': '19725', + 'tags': 'mincount:6', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': 1656054443, + 'upload_date': '20220624', + 'view_count': int, + 'webpage_url': 'https://smotrim.ru/video/2431846', }, - 'add_ie': ['RUTV'], - }, { # brand, redirect - 'url': 'https://smotrim.ru/brand/64356', - 'md5': '740472999ccff81d7f6df79cecd91c18', + }, { + 'url': 'https://www.vesti.ru/article/4642878', 'info_dict': { - 'id': '2354523', + 'id': '3007209', 'ext': 'mp4', - 'title': 'Большие и маленькие. Лучшее. 4-й выпуск', - 'description': 'md5:84089e834429008371ea41ea3507b989', + 'title': 'Иностранные мессенджеры используют не только мошенники, но и вербовщики', + 'description': 'md5:74ab625a0a89b87b2e0ed98d6391b182', + 'duration': 265, + 'series': 'Вести. Дежурная часть', + 'series_id': '5204', + 'tags': 'mincount:6', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': 1754756280, + 'upload_date': '20250809', + 'view_count': int, + 'webpage_url': 'https://smotrim.ru/video/3007209', }, - 'add_ie': ['RUTV'], - }, { # live - 'url': 'https://smotrim.ru/live/19201', - 'info_dict': { - 'id': '19201', - 'ext': 'mp4', - # this looks like a TV channel name - 'title': 'Россия Культура. Прямой эфир', - 'description': '', - }, - 'add_ie': ['RUTV'], }] def _real_extract(self, url): - video_id, typ = self._match_valid_url(url).group('id', 'type') - rutv_type = 'video' - if typ not in ('video', 'live'): - webpage = self._download_webpage(url, video_id, f'Resolving {typ} link') - # there are two cases matching regex: - # 1. "embedUrl" in JSON LD (/brand/) - # 2. "src" attribute from iframe (/article/) - video_id = self._search_regex( - r'"https://player.smotrim.ru/iframe/video/id/(?P\d+)/', - webpage, 'video_id', default=None) - if not video_id: - raise ExtractorError('There are no video in this page.', expected=True) - elif typ == 'live': - rutv_type = 'live' + video_id = self._match_id(url) - return self.url_result(f'https://player.vgtrk.com/iframe/{rutv_type}/id/{video_id}') + return self._extract_from_smotrim_api('video', video_id) + + +class SmotrimAudioIE(SmotrimBaseIE): + IE_NAME = 'smotrim:audio' + _VALID_URL = r'https?://(?:(?:player|www)\.)?smotrim\.ru(?:/iframe)?/audio(?:/id)?/(?P\d+)' + _TESTS = [{ + 'url': 'https://smotrim.ru/audio/2573986', + 'md5': 'e28d94c20da524e242b2d00caef41a8e', + 'info_dict': { + 'id': '2573986', + 'ext': 'mp3', + 'title': 'Радиоспектакль', + 'description': 'md5:4bcaaf7d532bc78f76e478fad944e388', + 'duration': 3072, + 'series': 'Морис Леблан. Арсен Люпен, джентльмен-грабитель', + 'series_id': '66461', + 'tags': 'mincount:7', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': 1624884358, + 'upload_date': '20210628', + }, + }, { + 'url': 'https://player.smotrim.ru/iframe/audio/id/2860468', + 'md5': '5a6bc1fa24c7142958be1ad9cfae58a8', + 'info_dict': { + 'id': '2860468', + 'ext': 'mp3', + 'title': 'Колобок и музыкальная игра "Терем-теремок"', + 'duration': 1501, + 'series': 'Веселый колобок', + 'series_id': '68880', + 'tags': 'mincount:4', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': 1755925800, + 'upload_date': '20250823', + 'webpage_url': 'https://smotrim.ru/audio/2860468', + }, + }] + + def _real_extract(self, url): + audio_id = self._match_id(url) + + return self._extract_from_smotrim_api('audio', audio_id) + + +class SmotrimLiveIE(SmotrimBaseIE): + IE_NAME = 'smotrim:live' + _VALID_URL = r'''(?x: + (?:https?:)?// + (?:(?:(?:test)?player|www)\.)? + (?: + smotrim\.ru| + vgtrk\.com + ) + (?:/iframe)?/ + (?P + channel| + (?:audio-)?live + ) + (?:/u?id)?/(?P[\da-f-]+) + )''' + _EMBED_REGEX = [fr']+\bsrc=["\'](?P{_VALID_URL})'] + _TESTS = [{ + 'url': 'https://smotrim.ru/channel/76', + 'info_dict': { + 'id': '1661', + 'ext': 'mp4', + 'title': str, + 'channel_id': '76', + 'description': 'Смотрим прямой эфир «Москва 24»', + 'display_id': '76', + 'live_status': 'is_live', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': int, + 'upload_date': str, + }, + 'params': {'skip_download': 'Livestream'}, + }, { + # Radio + 'url': 'https://smotrim.ru/channel/81', + 'info_dict': { + 'id': '81', + 'ext': 'mp3', + 'title': str, + 'channel_id': '81', + 'live_status': 'is_live', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + }, + 'params': {'skip_download': 'Livestream'}, + }, { + # Sometimes geo-restricted to Russia + 'url': 'https://player.smotrim.ru/iframe/live/uid/381308c7-a066-4c4f-9656-83e2e792a7b4', + 'info_dict': { + 'id': '19201', + 'ext': 'mp4', + 'title': str, + 'channel_id': '4', + 'description': 'Смотрим прямой эфир «Россия К»', + 'display_id': '381308c7-a066-4c4f-9656-83e2e792a7b4', + 'live_status': 'is_live', + 'thumbnail': r're:https?://cdn-st\d+\.smotrim\.ru/.+\.(?:jpg|png)', + 'timestamp': int, + 'upload_date': str, + 'webpage_url': 'https://smotrim.ru/channel/4', + }, + 'params': {'skip_download': 'Livestream'}, + }, { + 'url': 'https://smotrim.ru/live/19201', + 'only_matching': True, + }, { + 'url': 'https://player.smotrim.ru/iframe/audio-live/id/81', + 'only_matching': True, + }, { + 'url': 'https://testplayer.vgtrk.com/iframe/live/id/19201', + 'only_matching': True, + }] + + def _real_extract(self, url): + typ, display_id = self._match_valid_url(url).group('type', 'id') + + if typ == 'live' and re.fullmatch(r'[0-9]+', display_id): + url = self._request_webpage(url, display_id).url + typ = self._match_valid_url(url).group('type') + + if typ == 'channel': + webpage = self._download_webpage(url, display_id) + src_url = traverse_obj(webpage, (( + ({find_element(cls='main-player__frame', html=True)}, {extract_attributes}, 'src'), + ({find_element(cls='audio-play-button', html=True)}, + {extract_attributes}, 'value', {urllib.parse.unquote}, {json.loads}, 'source'), + ), any, {self._proto_relative_url}, {url_or_none}, {require('src URL')})) + typ, video_id = self._match_valid_url(src_url).group('type', 'id') + else: + video_id = display_id + + return { + 'display_id': display_id, + **self._extract_from_smotrim_api(typ, video_id), + } + + +class SmotrimPlaylistIE(SmotrimBaseIE): + IE_NAME = 'smotrim:playlist' + _PAGE_SIZE = 15 + _VALID_URL = r'https?://smotrim\.ru/(?Pbrand|podcast)/(?P\d+)/?(?P[\w-]+)?' + _TESTS = [{ + # Video + 'url': 'https://smotrim.ru/brand/64356', + 'info_dict': { + 'id': '64356', + 'title': 'Большие и маленькие', + }, + 'playlist_mincount': 55, + }, { + # Video, season + 'url': 'https://smotrim.ru/brand/65293/3-sezon', + 'info_dict': { + 'id': '65293', + 'title': 'Спасская', + 'season': '3 сезон', + }, + 'playlist_count': 16, + }, { + # Audio + 'url': 'https://smotrim.ru/brand/68880', + 'info_dict': { + 'id': '68880', + 'title': 'Веселый колобок', + }, + 'playlist_mincount': 156, + }, { + # Podcast + 'url': 'https://smotrim.ru/podcast/8021', + 'info_dict': { + 'id': '8021', + 'title': 'Сила звука', + }, + 'playlist_mincount': 27, + }] + + def _fetch_page(self, endpoint, key, playlist_id, page): + page += 1 + items = self._download_json( + f'{self._BASE_URL}/api/{endpoint}', playlist_id, + f'Downloading page {page}', query={ + key: playlist_id, + 'limit': self._PAGE_SIZE, + 'page': page, + }, + ) + + for link in traverse_obj(items, ('contents', -1, 'list', ..., 'link', {str})): + yield self.url_result(urljoin(self._BASE_URL, link)) + + def _real_extract(self, url): + playlist_type, playlist_id, season = self._match_valid_url(url).group('type', 'id', 'season') + key = 'rubricId' if playlist_type == 'podcast' else 'brandId' + webpage = self._download_webpage(url, playlist_id) + playlist_title = self._html_search_meta(['og:title', 'twitter:title'], webpage, default=None) + + if season: + return self.playlist_from_matches(traverse_obj(webpage, ( + {find_elements(tag='a', attr='href', value=r'/video/\d+', html=True, regex=True)}, + ..., {extract_attributes}, 'href', {str}, + )), playlist_id, playlist_title, season=traverse_obj(webpage, ( + {find_element(cls='seasons__item seasons__item--selected')}, {clean_html}, + )), ie=SmotrimIE, getter=urljoin(self._BASE_URL)) + + if traverse_obj(webpage, ( + {find_element(cls='brand-main-item__videos')}, {clean_html}, filter, + )): + endpoint = 'videos' + else: + endpoint = 'audios' + + return self.playlist_result(OnDemandPagedList( + functools.partial(self._fetch_page, endpoint, key, playlist_id), self._PAGE_SIZE), playlist_id, playlist_title) diff --git a/yt-dlp/yt_dlp/extractor/spotify.py b/yt-dlp/yt_dlp/extractor/spotify.py deleted file mode 100644 index de67a61148..0000000000 --- a/yt-dlp/yt_dlp/extractor/spotify.py +++ /dev/null @@ -1,167 +0,0 @@ -import functools -import json -import re - -from .common import InfoExtractor -from ..utils import ( - OnDemandPagedList, - clean_podcast_url, - float_or_none, - int_or_none, - strip_or_none, - traverse_obj, - try_get, - unified_strdate, -) - - -class SpotifyBaseIE(InfoExtractor): - _WORKING = False - _ACCESS_TOKEN = None - _OPERATION_HASHES = { - 'Episode': '8276d4423d709ae9b68ec1b74cc047ba0f7479059a37820be730f125189ac2bf', - 'MinimalShow': '13ee079672fad3f858ea45a55eb109553b4fb0969ed793185b2e34cbb6ee7cc0', - 'ShowEpisodes': 'e0e5ce27bd7748d2c59b4d44ba245a8992a05be75d6fabc3b20753fc8857444d', - } - _VALID_URL_TEMPL = r'https?://open\.spotify\.com/(?:embed-podcast/|embed/|)%s/(?P[^/?&#]+)' - _EMBED_REGEX = [r']+src="(?Phttps?://open\.spotify.com/embed/[^"]+)"'] - - def _real_initialize(self): - self._ACCESS_TOKEN = self._download_json( - 'https://open.spotify.com/get_access_token', None)['accessToken'] - - def _call_api(self, operation, video_id, variables, **kwargs): - return self._download_json( - 'https://api-partner.spotify.com/pathfinder/v1/query', video_id, query={ - 'operationName': 'query' + operation, - 'variables': json.dumps(variables), - 'extensions': json.dumps({ - 'persistedQuery': { - 'sha256Hash': self._OPERATION_HASHES[operation], - }, - }), - }, headers={'authorization': 'Bearer ' + self._ACCESS_TOKEN}, - **kwargs)['data'] - - def _extract_episode(self, episode, series): - episode_id = episode['id'] - title = episode['name'].strip() - - formats = [] - audio_preview = episode.get('audioPreview') or {} - audio_preview_url = audio_preview.get('url') - if audio_preview_url: - f = { - 'url': audio_preview_url.replace('://p.scdn.co/mp3-preview/', '://anon-podcast.scdn.co/'), - 'vcodec': 'none', - } - audio_preview_format = audio_preview.get('format') - if audio_preview_format: - f['format_id'] = audio_preview_format - mobj = re.match(r'([0-9A-Z]{3})_(?:[A-Z]+_)?(\d+)', audio_preview_format) - if mobj: - f.update({ - 'abr': int(mobj.group(2)), - 'ext': mobj.group(1).lower(), - }) - formats.append(f) - - for item in (try_get(episode, lambda x: x['audio']['items']) or []): - item_url = item.get('url') - if not (item_url and item.get('externallyHosted')): - continue - formats.append({ - 'url': clean_podcast_url(item_url), - 'vcodec': 'none', - }) - - thumbnails = [] - for source in (try_get(episode, lambda x: x['coverArt']['sources']) or []): - source_url = source.get('url') - if not source_url: - continue - thumbnails.append({ - 'url': source_url, - 'width': int_or_none(source.get('width')), - 'height': int_or_none(source.get('height')), - }) - - return { - 'id': episode_id, - 'title': title, - 'formats': formats, - 'thumbnails': thumbnails, - 'description': strip_or_none(episode.get('description')), - 'duration': float_or_none(try_get( - episode, lambda x: x['duration']['totalMilliseconds']), 1000), - 'release_date': unified_strdate(try_get( - episode, lambda x: x['releaseDate']['isoString'])), - 'series': series, - } - - -class SpotifyIE(SpotifyBaseIE): - IE_NAME = 'spotify' - IE_DESC = 'Spotify episodes' - _VALID_URL = SpotifyBaseIE._VALID_URL_TEMPL % 'episode' - _TESTS = [{ - 'url': 'https://open.spotify.com/episode/4Z7GAJ50bgctf6uclHlWKo', - 'md5': '74010a1e3fa4d9e1ab3aa7ad14e42d3b', - 'info_dict': { - 'id': '4Z7GAJ50bgctf6uclHlWKo', - 'ext': 'mp3', - 'title': 'From the archive: Why time management is ruining our lives', - 'description': 'md5:b120d9c4ff4135b42aa9b6d9cde86935', - 'duration': 2083.605, - 'release_date': '20201217', - 'series': "The Guardian's Audio Long Reads", - }, - }, { - 'url': 'https://open.spotify.com/embed/episode/4TvCsKKs2thXmarHigWvXE?si=7eatS8AbQb6RxqO2raIuWA', - 'only_matching': True, - }] - - def _real_extract(self, url): - episode_id = self._match_id(url) - episode = self._call_api('Episode', episode_id, { - 'uri': 'spotify:episode:' + episode_id, - })['episode'] - return self._extract_episode( - episode, try_get(episode, lambda x: x['podcast']['name'])) - - -class SpotifyShowIE(SpotifyBaseIE): - IE_NAME = 'spotify:show' - IE_DESC = 'Spotify shows' - _VALID_URL = SpotifyBaseIE._VALID_URL_TEMPL % 'show' - _TEST = { - 'url': 'https://open.spotify.com/show/4PM9Ke6l66IRNpottHKV9M', - 'info_dict': { - 'id': '4PM9Ke6l66IRNpottHKV9M', - 'title': 'The Story from the Guardian', - 'description': 'The Story podcast is dedicated to our finest audio documentaries, investigations and long form stories', - }, - 'playlist_mincount': 36, - } - _PER_PAGE = 100 - - def _fetch_page(self, show_id, page=0): - return self._call_api('ShowEpisodes', show_id, { - 'limit': 100, - 'offset': page * self._PER_PAGE, - 'uri': f'spotify:show:{show_id}', - }, note=f'Downloading page {page + 1} JSON metadata')['podcast'] - - def _real_extract(self, url): - show_id = self._match_id(url) - first_page = self._fetch_page(show_id) - - def _entries(page): - podcast = self._fetch_page(show_id, page) if page else first_page - yield from map( - functools.partial(self._extract_episode, series=podcast.get('name')), - traverse_obj(podcast, ('episodes', 'items', ..., 'episode'))) - - return self.playlist_result( - OnDemandPagedList(_entries, self._PER_PAGE), - show_id, first_page.get('name'), first_page.get('description')) diff --git a/yt-dlp/yt_dlp/extractor/tunein.py b/yt-dlp/yt_dlp/extractor/tunein.py index 90fb04bf3d..b5743e8e82 100644 --- a/yt-dlp/yt_dlp/extractor/tunein.py +++ b/yt-dlp/yt_dlp/extractor/tunein.py @@ -1,244 +1,335 @@ +import functools import urllib.parse from .common import InfoExtractor from ..utils import ( OnDemandPagedList, - determine_ext, + UnsupportedError, + clean_html, + int_or_none, + join_nonempty, parse_iso8601, - traverse_obj, + update_url_query, + url_or_none, ) +from ..utils.traversal import traverse_obj class TuneInBaseIE(InfoExtractor): - _VALID_URL_BASE = r'https?://(?:www\.)?tunein\.com' - - def _extract_metadata(self, webpage, content_id): - return self._search_json(r'window.INITIAL_STATE=', webpage, 'hydration', content_id, fatal=False) + def _call_api(self, item_id, endpoint=None, note='Downloading JSON metadata', fatal=False, query=None): + return self._download_json( + join_nonempty('https://api.tunein.com/profiles', item_id, endpoint, delim='/'), + item_id, note=note, fatal=fatal, query=query) or {} def _extract_formats_and_subtitles(self, content_id): streams = self._download_json( - f'https://opml.radiotime.com/Tune.ashx?render=json&formats=mp3,aac,ogg,flash,hls&id={content_id}', - content_id)['body'] + 'https://opml.radiotime.com/Tune.ashx', content_id, query={ + 'formats': 'mp3,aac,ogg,flash,hls', + 'id': content_id, + 'render': 'json', + }) formats, subtitles = [], {} - for stream in streams: + for stream in traverse_obj(streams, ('body', lambda _, v: url_or_none(v['url']))): if stream.get('media_type') == 'hls': fmts, subs = self._extract_m3u8_formats_and_subtitles(stream['url'], content_id, fatal=False) formats.extend(fmts) self._merge_subtitles(subs, target=subtitles) - elif determine_ext(stream['url']) == 'pls': - playlist_content = self._download_webpage(stream['url'], content_id) - formats.append({ - 'url': self._search_regex(r'File1=(.*)', playlist_content, 'url', fatal=False), - 'abr': stream.get('bitrate'), - 'ext': stream.get('media_type'), - }) else: - formats.append({ - 'url': stream['url'], - 'abr': stream.get('bitrate'), - 'ext': stream.get('media_type'), - }) + formats.append(traverse_obj(stream, { + 'abr': ('bitrate', {int_or_none}), + 'ext': ('media_type', {str}), + 'url': ('url', {self._proto_relative_url}), + })) return formats, subtitles class TuneInStationIE(TuneInBaseIE): - _VALID_URL = TuneInBaseIE._VALID_URL_BASE + r'(?:/radio/[^?#]+-|/embed/player/)(?Ps\d+)' - _EMBED_REGEX = [r']+src=["\'](?P(?:https?://)?tunein\.com/embed/player/s\d+)'] - + IE_NAME = 'tunein:station' + _VALID_URL = r'https?://tunein\.com/radio/[^/?#]+(?Ps\d+)' _TESTS = [{ 'url': 'https://tunein.com/radio/Jazz24-885-s34682/', 'info_dict': { 'id': 's34682', - 'title': str, - 'description': 'md5:d6d0b89063fd68d529fa7058ee98619b', - 'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+', - 'location': 'Seattle-Tacoma, US', 'ext': 'mp3', + 'title': str, + 'alt_title': 'World Class Jazz', + 'channel_follower_count': int, + 'description': 'md5:d6d0b89063fd68d529fa7058ee98619b', + 'location': r're:Seattle-Tacoma, (?:US|WA)', 'live_status': 'is_live', + 'thumbnail': r're:https?://.+', }, - 'params': { - 'skip_download': True, - }, - }, { - 'url': 'https://tunein.com/embed/player/s6404/', - 'only_matching': True, + 'params': {'skip_download': 'Livestream'}, }, { 'url': 'https://tunein.com/radio/BBC-Radio-1-988-s24939/', 'info_dict': { 'id': 's24939', - 'title': str, - 'description': 'md5:ee2c56794844610d045f8caf5ff34d0c', - 'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+', - 'location': 'London, UK', 'ext': 'm4a', + 'title': str, + 'alt_title': 'The biggest new pop and all-day vibes', + 'channel_follower_count': int, + 'description': 'md5:ee2c56794844610d045f8caf5ff34d0c', + 'location': 'London, UK', 'live_status': 'is_live', + 'thumbnail': r're:https?://.+', }, - 'params': { - 'skip_download': True, + 'params': {'skip_download': 'Livestream'}, + }] + + def _real_extract(self, url): + station_id = self._match_id(url) + formats, subtitles = self._extract_formats_and_subtitles(station_id) + + return { + 'id': station_id, + 'formats': formats, + 'subtitles': subtitles, + **traverse_obj(self._call_api(station_id), ('Item', { + 'title': ('Title', {clean_html}), + 'alt_title': ('Subtitle', {clean_html}, filter), + 'channel_follower_count': ('Actions', 'Follow', 'FollowerCount', {int_or_none}), + 'description': ('Description', {clean_html}, filter), + 'is_live': ('Actions', 'Play', 'IsLive', {bool}), + 'location': ('Properties', 'Location', 'DisplayName', {str}), + 'thumbnail': ('Image', {url_or_none}), + })), + } + + +class TuneInPodcastIE(TuneInBaseIE): + IE_NAME = 'tunein:podcast:program' + _PAGE_SIZE = 20 + _VALID_URL = r'https?://tunein\.com/podcasts(?:/[^/?#]+){1,2}(?Pp\d+)' + _TESTS = [{ + 'url': 'https://tunein.com/podcasts/Technology-Podcasts/Artificial-Intelligence-p1153019/', + 'info_dict': { + 'id': 'p1153019', + 'title': 'Lex Fridman Podcast', }, + 'playlist_mincount': 200, + }, { + 'url': 'https://tunein.com/podcasts/World-News/BBC-News-p14/', + 'info_dict': { + 'id': 'p14', + 'title': 'BBC News', + }, + 'playlist_mincount': 35, + }] + + @classmethod + def suitable(cls, url): + return False if TuneInPodcastEpisodeIE.suitable(url) else super().suitable(url) + + def _fetch_page(self, url, podcast_id, page=0): + items = self._call_api( + podcast_id, 'contents', f'Downloading page {page + 1}', query={ + 'filter': 't:free', + 'limit': self._PAGE_SIZE, + 'offset': page * self._PAGE_SIZE, + }, + )['Items'] + + for item in traverse_obj(items, (..., 'GuideId', {str}, filter)): + yield self.url_result(update_url_query(url, {'topicId': item[1:]})) + + def _real_extract(self, url): + podcast_id = self._match_id(url) + + return self.playlist_result(OnDemandPagedList( + functools.partial(self._fetch_page, url, podcast_id), self._PAGE_SIZE), + podcast_id, traverse_obj(self._call_api(podcast_id), ('Item', 'Title', {str}))) + + +class TuneInPodcastEpisodeIE(TuneInBaseIE): + IE_NAME = 'tunein:podcast' + _VALID_URL = r'https?://tunein\.com/podcasts(?:/[^/?#]+){1,2}(?Pp\d+)/?\?(?:[^#]+&)?(?i:topicid)=(?P\d+)' + _TESTS = [{ + 'url': 'https://tunein.com/podcasts/Technology-Podcasts/Artificial-Intelligence-p1153019/?topicId=236404354', + 'info_dict': { + 'id': 't236404354', + 'ext': 'mp3', + 'title': '#351 – MrBeast: Future of YouTube, Twitter, TikTok, and Instagram', + 'alt_title': 'Technology Podcasts >', + 'cast': 'count:1', + 'description': 'md5:1029895354ef073ff00f20b82eb6eb71', + 'display_id': '236404354', + 'duration': 8330, + 'thumbnail': r're:https?://.+', + 'timestamp': 1673458571, + 'upload_date': '20230111', + 'series': 'Lex Fridman Podcast', + 'series_id': 'p1153019', + }, + }, { + 'url': 'https://tunein.com/podcasts/The-BOB--TOM-Show-Free-Podcast-p20069/?topicId=174556405', + 'info_dict': { + 'id': 't174556405', + 'ext': 'mp3', + 'title': 'B&T Extra: Ohhh Yeah, It\'s Sexy Time', + 'alt_title': 'Westwood One >', + 'cast': 'count:2', + 'description': 'md5:6828234f410ab88c85655495c5fcfa88', + 'display_id': '174556405', + 'duration': 1203, + 'series': 'The BOB & TOM Show Free Podcast', + 'series_id': 'p20069', + 'thumbnail': r're:https?://.+', + 'timestamp': 1661799600, + 'upload_date': '20220829', + }, + }] + + def _real_extract(self, url): + series_id, display_id = self._match_valid_url(url).group('series_id', 'id') + episode_id = f't{display_id}' + formats, subtitles = self._extract_formats_and_subtitles(episode_id) + + return { + 'id': episode_id, + 'display_id': display_id, + 'formats': formats, + 'series': traverse_obj(self._call_api(series_id), ('Item', 'Title', {clean_html})), + 'series_id': series_id, + 'subtitles': subtitles, + **traverse_obj(self._call_api(episode_id), ('Item', { + 'title': ('Title', {clean_html}), + 'alt_title': ('Subtitle', {clean_html}, filter), + 'cast': ( + 'Properties', 'ParentProgram', 'Hosts', {clean_html}, + {lambda x: x.split(';')}, ..., {str.strip}, filter, all, filter), + 'description': ('Description', {clean_html}, filter), + 'duration': ('Actions', 'Play', 'Duration', {int_or_none}), + 'thumbnail': ('Image', {url_or_none}), + 'timestamp': ('Actions', 'Play', 'PublishTime', {parse_iso8601}), + })), + } + + +class TuneInEmbedIE(TuneInBaseIE): + IE_NAME = 'tunein:embed' + _VALID_URL = r'https?://tunein\.com/embed/player/(?P[^/?#]+)' + _EMBED_REGEX = [r']+\bsrc=["\'](?P(?:https?:)?//tunein\.com/embed/player/[^/?#"\']+)'] + _TESTS = [{ + 'url': 'https://tunein.com/embed/player/s6404/', + 'info_dict': { + 'id': 's6404', + 'ext': 'mp3', + 'title': str, + 'alt_title': 'South Africa\'s News and Information Leader', + 'channel_follower_count': int, + 'live_status': 'is_live', + 'location': 'Johannesburg, South Africa', + 'thumbnail': r're:https?://.+', + }, + 'params': {'skip_download': 'Livestream'}, + }, { + 'url': 'https://tunein.com/embed/player/t236404354/', + 'info_dict': { + 'id': 't236404354', + 'ext': 'mp3', + 'title': '#351 – MrBeast: Future of YouTube, Twitter, TikTok, and Instagram', + 'alt_title': 'Technology Podcasts >', + 'cast': 'count:1', + 'description': 'md5:1029895354ef073ff00f20b82eb6eb71', + 'display_id': '236404354', + 'duration': 8330, + 'series': 'Lex Fridman Podcast', + 'series_id': 'p1153019', + 'thumbnail': r're:https?://.+', + 'timestamp': 1673458571, + 'upload_date': '20230111', + }, + }, { + 'url': 'https://tunein.com/embed/player/p191660/', + 'info_dict': { + 'id': 'p191660', + 'title': 'SBS Tamil', + }, + 'playlist_mincount': 195, }] _WEBPAGE_TESTS = [{ 'url': 'https://www.martiniinthemorning.com/', 'info_dict': { 'id': 's55412', 'ext': 'mp3', - 'title': 'TuneInStation video #s55412', + 'title': str, + 'alt_title': 'Now that\'s music!', + 'channel_follower_count': int, + 'description': 'md5:41588a3e2cf34b3eafc6c33522fa611a', + 'live_status': 'is_live', + 'location': 'US', + 'thumbnail': r're:https?://.+', }, - 'expected_warnings': ['unable to extract hydration', 'Extractor failed to obtain "title"'], + 'params': {'skip_download': 'Livestream'}, }] def _real_extract(self, url): - station_id = self._match_id(url) + embed_id = self._match_id(url) + kind = { + 'p': 'program', + 's': 'station', + 't': 'topic', + }.get(embed_id[:1]) - webpage = self._download_webpage(url, station_id) - metadata = self._extract_metadata(webpage, station_id) - - formats, subtitles = self._extract_formats_and_subtitles(station_id) - return { - 'id': station_id, - 'title': traverse_obj(metadata, ('profiles', station_id, 'title')), - 'description': traverse_obj(metadata, ('profiles', station_id, 'description')), - 'thumbnail': traverse_obj(metadata, ('profiles', station_id, 'image')), - 'timestamp': parse_iso8601( - traverse_obj(metadata, ('profiles', station_id, 'actions', 'play', 'publishTime'))), - 'location': traverse_obj( - metadata, ('profiles', station_id, 'metadata', 'properties', 'location', 'displayName'), - ('profiles', station_id, 'properties', 'location', 'displayName')), - 'formats': formats, - 'subtitles': subtitles, - 'is_live': traverse_obj(metadata, ('profiles', station_id, 'actions', 'play', 'isLive')), - } - - -class TuneInPodcastIE(TuneInBaseIE): - _VALID_URL = TuneInBaseIE._VALID_URL_BASE + r'/(?:podcasts/[^?#]+-|embed/player/)(?Pp\d+)/?(?:#|$)' - _EMBED_REGEX = [r']+src=["\'](?P(?:https?://)?tunein\.com/embed/player/p\d+)'] - - _TESTS = [{ - 'url': 'https://tunein.com/podcasts/Technology-Podcasts/Artificial-Intelligence-p1153019', - 'info_dict': { - 'id': 'p1153019', - 'title': 'Lex Fridman Podcast', - 'description': 'md5:bedc4e5f1c94f7dec6e4317b5654b00d', - }, - 'playlist_mincount': 200, - }, { - 'url': 'https://tunein.com/embed/player/p191660/', - 'only_matching': True, - }, { - 'url': 'https://tunein.com/podcasts/World-News/BBC-News-p14/', - 'info_dict': { - 'id': 'p14', - 'title': 'BBC News', - 'description': 'md5:30b9622bcc4bd101d4acd6f38f284aed', - }, - 'playlist_mincount': 36, - }] - - _PAGE_SIZE = 30 - - def _real_extract(self, url): - podcast_id = self._match_id(url) - - webpage = self._download_webpage(url, podcast_id, fatal=False) - metadata = self._extract_metadata(webpage, podcast_id) - - def page_func(page_num): - api_response = self._download_json( - f'https://api.tunein.com/profiles/{podcast_id}/contents', podcast_id, - note=f'Downloading page {page_num + 1}', query={ - 'filter': 't:free', - 'offset': page_num * self._PAGE_SIZE, - 'limit': self._PAGE_SIZE, - }) - - return [ - self.url_result( - f'https://tunein.com/podcasts/{podcast_id}?topicId={episode["GuideId"][1:]}', - TuneInPodcastEpisodeIE, title=episode.get('Title')) - for episode in api_response['Items']] - - entries = OnDemandPagedList(page_func, self._PAGE_SIZE) - return self.playlist_result( - entries, playlist_id=podcast_id, title=traverse_obj(metadata, ('profiles', podcast_id, 'title')), - description=traverse_obj(metadata, ('profiles', podcast_id, 'description'))) - - -class TuneInPodcastEpisodeIE(TuneInBaseIE): - _VALID_URL = TuneInBaseIE._VALID_URL_BASE + r'/podcasts/(?:[^?&]+-)?(?Pp\d+)/?\?topicId=(?P\w\d+)' - - _TESTS = [{ - 'url': 'https://tunein.com/podcasts/Technology-Podcasts/Artificial-Intelligence-p1153019/?topicId=236404354', - 'info_dict': { - 'id': 't236404354', - 'title': '#351 – MrBeast: Future of YouTube, Twitter, TikTok, and Instagram', - 'description': 'md5:2784533b98f8ac45c0820b1e4a8d8bb2', - 'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+', - 'timestamp': 1673458571, - 'upload_date': '20230111', - 'series_id': 'p1153019', - 'series': 'Lex Fridman Podcast', - 'ext': 'mp3', - }, - }] - - def _real_extract(self, url): - podcast_id, episode_id = self._match_valid_url(url).group('podcast_id', 'id') - episode_id = f't{episode_id}' - - webpage = self._download_webpage(url, episode_id) - metadata = self._extract_metadata(webpage, episode_id) - - formats, subtitles = self._extract_formats_and_subtitles(episode_id) - return { - 'id': episode_id, - 'title': traverse_obj(metadata, ('profiles', episode_id, 'title')), - 'description': traverse_obj(metadata, ('profiles', episode_id, 'description')), - 'thumbnail': traverse_obj(metadata, ('profiles', episode_id, 'image')), - 'timestamp': parse_iso8601( - traverse_obj(metadata, ('profiles', episode_id, 'actions', 'play', 'publishTime'))), - 'series_id': podcast_id, - 'series': traverse_obj(metadata, ('profiles', podcast_id, 'title')), - 'formats': formats, - 'subtitles': subtitles, - } + return self.url_result( + f'https://tunein.com/{kind}/?{kind}id={embed_id[1:]}') class TuneInShortenerIE(InfoExtractor): - _WORKING = False IE_NAME = 'tunein:shortener' IE_DESC = False # Do not list - _VALID_URL = r'https?://tun\.in/(?P[A-Za-z0-9]+)' - + _VALID_URL = r'https?://tun\.in/(?P[^/?#]+)' _TESTS = [{ - # test redirection 'url': 'http://tun.in/ser7s', 'info_dict': { 'id': 's34682', 'title': str, - 'description': 'md5:d6d0b89063fd68d529fa7058ee98619b', - 'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+', - 'location': 'Seattle-Tacoma, US', 'ext': 'mp3', + 'alt_title': 'World Class Jazz', + 'channel_follower_count': int, + 'description': 'md5:d6d0b89063fd68d529fa7058ee98619b', + 'location': r're:Seattle-Tacoma, (?:US|WA)', 'live_status': 'is_live', + 'thumbnail': r're:https?://.+', }, - 'params': { - 'skip_download': True, # live stream + 'params': {'skip_download': 'Livestream'}, + }, { + 'url': 'http://tun.in/tqeeFw', + 'info_dict': { + 'id': 't236404354', + 'title': str, + 'ext': 'mp3', + 'alt_title': 'Technology Podcasts >', + 'cast': 'count:1', + 'description': 'md5:1029895354ef073ff00f20b82eb6eb71', + 'display_id': '236404354', + 'duration': 8330, + 'series': 'Lex Fridman Podcast', + 'series_id': 'p1153019', + 'thumbnail': r're:https?://.+', + 'timestamp': 1673458571, + 'upload_date': '20230111', }, + 'params': {'skip_download': 'Livestream'}, + }, { + 'url': 'http://tun.in/pei6i', + 'info_dict': { + 'id': 'p14', + 'title': 'BBC News', + }, + 'playlist_mincount': 35, }] def _real_extract(self, url): redirect_id = self._match_id(url) # The server doesn't support HEAD requests - urlh = self._request_webpage( - url, redirect_id, note='Downloading redirect page') - - url = urlh.url - url_parsed = urllib.parse.urlparse(url) - if url_parsed.port == 443: - url = url_parsed._replace(netloc=url_parsed.hostname).url - - self.to_screen(f'Following redirect: {url}') - return self.url_result(url) + urlh = self._request_webpage(url, redirect_id, 'Downloading redirect page') + # Need to strip port from URL + parsed = urllib.parse.urlparse(urlh.url) + new_url = parsed._replace(netloc=parsed.hostname).geturl() + # Prevent infinite loop in case redirect fails + if self.suitable(new_url): + raise UnsupportedError(new_url) + return self.url_result(new_url) diff --git a/yt-dlp/yt_dlp/extractor/unsupported.py b/yt-dlp/yt_dlp/extractor/unsupported.py index 05ae4dd18a..4857156913 100644 --- a/yt-dlp/yt_dlp/extractor/unsupported.py +++ b/yt-dlp/yt_dlp/extractor/unsupported.py @@ -30,13 +30,13 @@ class KnownDRMIE(UnsupportedInfoExtractor): r'play\.hbomax\.com', r'channel(?:4|5)\.com', r'peacocktv\.com', - r'(?:[\w\.]+\.)?disneyplus\.com', - r'open\.spotify\.com/(?:track|playlist|album|artist)', + r'(?:[\w.]+\.)?disneyplus\.com', + r'open\.spotify\.com', r'tvnz\.co\.nz', r'oneplus\.ch', r'artstation\.com/learning/courses', r'philo\.com', - r'(?:[\w\.]+\.)?mech-plus\.com', + r'(?:[\w.]+\.)?mech-plus\.com', r'aha\.video', r'mubi\.com', r'vootkids\.com', @@ -57,6 +57,14 @@ class KnownDRMIE(UnsupportedInfoExtractor): r'ctv\.ca', r'noovo\.ca', r'tsn\.ca', + r'paramountplus\.com', + r'(?:m\.)?(?:sony)?crackle\.com', + r'cw(?:tv(?:pr)?|seed)\.com', + r'6play\.fr', + r'rtlplay\.be', + r'play\.rtl\.hr', + r'rtlmost\.hu', + r'plus\.rtl\.de(?!/podcast/)', ) _TESTS = [{ @@ -78,10 +86,7 @@ class KnownDRMIE(UnsupportedInfoExtractor): 'url': r'https://www.disneyplus.com', 'only_matching': True, }, { - 'url': 'https://open.spotify.com/artist/', - 'only_matching': True, - }, { - 'url': 'https://open.spotify.com/track/', + 'url': 'https://open.spotify.com', 'only_matching': True, }, { # https://github.com/yt-dlp/yt-dlp/issues/4122 @@ -184,6 +189,39 @@ class KnownDRMIE(UnsupportedInfoExtractor): }, { 'url': 'https://www.tsn.ca/video/relaxed-oilers-look-to-put-emotional-game-2-loss-in-the-rearview%7E3148747', 'only_matching': True, + }, { + 'url': 'https://www.paramountplus.com', + 'only_matching': True, + }, { + 'url': 'https://www.crackle.com', + 'only_matching': True, + }, { + 'url': 'https://m.sonycrackle.com', + 'only_matching': True, + }, { + 'url': 'https://www.cwtv.com', + 'only_matching': True, + }, { + 'url': 'https://www.cwseed.com', + 'only_matching': True, + }, { + 'url': 'https://cwtvpr.com', + 'only_matching': True, + }, { + 'url': 'https://www.6play.fr', + 'only_matching': True, + }, { + 'url': 'https://www.rtlplay.be', + 'only_matching': True, + }, { + 'url': 'https://play.rtl.hr', + 'only_matching': True, + }, { + 'url': 'https://www.rtlmost.hu', + 'only_matching': True, + }, { + 'url': 'https://plus.rtl.de/video-tv/', + 'only_matching': True, }] def _real_extract(self, url): @@ -222,6 +260,7 @@ class KnownPiracyIE(UnsupportedInfoExtractor): r'91porn\.com', r'einthusan\.(?:tv|com|ca)', r'yourupload\.com', + r'xanimu\.com', ) _TESTS = [{ diff --git a/yt-dlp/yt_dlp/extractor/vesti.py b/yt-dlp/yt_dlp/extractor/vesti.py deleted file mode 100644 index 844041a61a..0000000000 --- a/yt-dlp/yt_dlp/extractor/vesti.py +++ /dev/null @@ -1,119 +0,0 @@ -import re - -from .common import InfoExtractor -from .rutv import RUTVIE -from ..utils import ExtractorError - - -class VestiIE(InfoExtractor): - _WORKING = False - IE_DESC = 'Вести.Ru' - _VALID_URL = r'https?://(?:.+?\.)?vesti\.ru/(?P.+)' - - _TESTS = [ - { - 'url': 'http://www.vesti.ru/videos?vid=575582&cid=1', - 'info_dict': { - 'id': '765035', - 'ext': 'mp4', - 'title': 'Вести.net: биткоины в России не являются законными', - 'description': 'md5:d4bb3859dc1177b28a94c5014c35a36b', - 'duration': 302, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, - { - 'url': 'http://www.vesti.ru/doc.html?id=1349233', - 'info_dict': { - 'id': '773865', - 'ext': 'mp4', - 'title': 'Участники митинга штурмуют Донецкую областную администрацию', - 'description': 'md5:1a160e98b3195379b4c849f2f4958009', - 'duration': 210, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, - { - 'url': 'http://www.vesti.ru/only_video.html?vid=576180', - 'info_dict': { - 'id': '766048', - 'ext': 'mp4', - 'title': 'США заморозило, Британию затопило', - 'description': 'md5:f0ed0695ec05aed27c56a70a58dc4cc1', - 'duration': 87, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, - { - 'url': 'http://hitech.vesti.ru/news/view/id/4000', - 'info_dict': { - 'id': '766888', - 'ext': 'mp4', - 'title': 'Вести.net: интернет-гиганты начали перетягивание программных "одеял"', - 'description': 'md5:65ddd47f9830c4f42ed6475f8730c995', - 'duration': 279, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - }, - { - 'url': 'http://sochi2014.vesti.ru/video/index/video_id/766403', - 'info_dict': { - 'id': '766403', - 'ext': 'mp4', - 'title': 'XXII зимние Олимпийские игры. Российские хоккеисты стартовали на Олимпиаде с победы', - 'description': 'md5:55805dfd35763a890ff50fa9e35e31b3', - 'duration': 271, - }, - 'params': { - # m3u8 download - 'skip_download': True, - }, - 'skip': 'Blocked outside Russia', - }, - { - 'url': 'http://sochi2014.vesti.ru/live/play/live_id/301', - 'info_dict': { - 'id': '51499', - 'ext': 'flv', - 'title': 'Сочи-2014. Биатлон. Индивидуальная гонка. Мужчины ', - 'description': 'md5:9e0ed5c9d2fa1efbfdfed90c9a6d179c', - }, - 'params': { - # rtmp download - 'skip_download': True, - }, - 'skip': 'Translation has finished', - }, - ] - - def _real_extract(self, url): - mobj = self._match_valid_url(url) - video_id = mobj.group('id') - - page = self._download_webpage(url, video_id, 'Downloading page') - - mobj = re.search( - r']+?property="og:video"[^>]+?content="http://www\.vesti\.ru/i/flvplayer_videoHost\.swf\?vid=(?P\d+)', - page) - if mobj: - video_id = mobj.group('id') - page = self._download_webpage(f'http://www.vesti.ru/only_video.html?vid={video_id}', video_id, - 'Downloading video page') - - rutv_url = RUTVIE._extract_url(page) - if rutv_url: - return self.url_result(rutv_url, 'RUTV') - - raise ExtractorError('No video found', expected=True) diff --git a/yt-dlp/yt_dlp/extractor/xanimu.py b/yt-dlp/yt_dlp/extractor/xanimu.py deleted file mode 100644 index b489358779..0000000000 --- a/yt-dlp/yt_dlp/extractor/xanimu.py +++ /dev/null @@ -1,52 +0,0 @@ -import re - -from .common import InfoExtractor -from ..utils import int_or_none - - -class XanimuIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?xanimu\.com/(?P[^/]+)/?' - _TESTS = [{ - 'url': 'https://xanimu.com/51944-the-princess-the-frog-hentai/', - 'md5': '899b88091d753d92dad4cb63bbf357a7', - 'info_dict': { - 'id': '51944-the-princess-the-frog-hentai', - 'ext': 'mp4', - 'title': 'The Princess + The Frog Hentai', - 'thumbnail': 'https://xanimu.com/storage/2020/09/the-princess-and-the-frog-hentai.jpg', - 'description': r're:^Enjoy The Princess \+ The Frog Hentai', - 'duration': 207.0, - 'age_limit': 18, - }, - }, { - 'url': 'https://xanimu.com/huge-expansion/', - 'only_matching': True, - }] - - def _real_extract(self, url): - video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) - - formats = [] - for format_id in ['videoHigh', 'videoLow']: - format_url = self._search_json( - rf'var\s+{re.escape(format_id)}\s*=', webpage, format_id, - video_id, default=None, contains_pattern=r'[\'"]([^\'"]+)[\'"]') - if format_url: - formats.append({ - 'url': format_url, - 'format_id': format_id, - 'quality': -2 if format_id.endswith('Low') else None, - }) - - return { - 'id': video_id, - 'formats': formats, - 'title': self._search_regex(r'[\'"]headline[\'"]:\s*[\'"]([^"]+)[\'"]', webpage, - 'title', default=None) or self._html_extract_title(webpage), - 'thumbnail': self._html_search_meta('thumbnailUrl', webpage, default=None), - 'description': self._html_search_meta('description', webpage, default=None), - 'duration': int_or_none(self._search_regex(r'duration:\s*[\'"]([^\'"]+?)[\'"]', - webpage, 'duration', fatal=False)), - 'age_limit': 18, - }