start host mark

#Google Services START


203.208.46.200 0.docs.google.com
203.208.46.200 0.drive.google.com
203.208.46.200 1.docs.google.com
203.208.46.200 1.drive.google.com
203.208.46.200 10.docs.google.com
203.208.46.200 10.drive.google.com
203.208.46.200 11.docs.google.com
203.208.46.200 11.drive.google.com
203.208.46.200 12.docs.google.com
203.208.46.200 12.drive.google.com
203.208.46.200 13.docs.google.com
203.208.46.200 13.drive.google.com
203.208.46.200 14.docs.google.com
203.208.46.200 14.drive.google.com
203.208.46.200 15.docs.google.com
203.208.46.200 15.drive.google.com
203.208.46.200 16.docs.google.com
203.208.46.200 16.drive.google.com
203.208.46.200 2.docs.google.com
203.208.46.200 2.drive.google.com
203.208.46.200 3.docs.google.com
203.208.46.200 3.drive.google.com
203.208.46.200 4.docs.google.com
203.208.46.200 4.drive.google.com
203.208.46.200 5.docs.google.com
203.208.46.200 5.drive.google.com
203.208.46.200 6.docs.google.com
203.208.46.200 6.drive.google.com
203.208.46.200 7.docs.google.com
203.208.46.200 7.drive.google.com
203.208.46.200 8.docs.google.com
203.208.46.200 8.drive.google.com
203.208.46.200 9.docs.google.com
203.208.46.200 9.drive.google.com
203.208.46.200 accounts.google.com
203.208.46.200 accounts.l.google.com
203.208.46.200 answers.google.com
203.208.46.200 apis.google.com
203.208.46.200 appengine.google.com
203.208.46.200 apps.google.com
203.208.46.200 appspot.l.google.com
203.208.46.200 bks0.books.google.com
203.208.46.200 bks1.books.google.com
203.208.46.200 bks10.books.google.com
203.208.46.200 bks2.books.google.com
203.208.46.200 bks3.books.google.com
203.208.46.200 bks4.books.google.com
203.208.46.200 bks5.books.google.com
203.208.46.200 bks6.books.google.com
203.208.46.200 bks7.books.google.com
203.208.46.200 bks8.books.google.com
203.208.46.200 bks9.books.google.com
203.208.46.200 blogsearch.google.com
203.208.46.200 books.google.com
203.208.46.200 browserchannel-docs.l.google.com
203.208.46.200 browserchannel-spreadsheets.l.google.com
203.208.46.200 browsersync.google.com
203.208.46.200 browsersync.l.google.com
203.208.46.200 buzz.google.com
203.208.46.200 cache.l.google.com
203.208.46.200 cache.pack.google.com
203.208.46.200 calendar.google.com
203.208.46.200 cbk0.google.com
203.208.46.200 cbk1.google.com
203.208.46.200 cbk2.google.com
203.208.46.200 cbk3.google.com
203.208.46.200 cbks0.google.com
203.208.46.200 cbks1.google.com
203.208.46.200 cbks2.google.com
203.208.46.200 cbks3.google.com
203.208.46.200 chart.apis.google.com
203.208.46.221 chatenabled.mail.google.com
203.208.46.200 checkout.google.com
203.208.46.200 checkout.l.google.com
203.208.46.200 chrome.google.com
203.208.46.200 clients.l.google.com
203.208.46.200 clients1.google.com
203.208.46.200 clients2.google.com
203.208.46.200 clients3.google.com
203.208.46.200 clients4.google.com
203.208.46.200 clients5.google.com
203.208.46.200 clients6.google.com
203.208.46.200 clients7.google.com
203.208.46.200 code.google.com
203.208.46.200 code.l.google.com
203.208.46.200 csi.l.google.com
203.208.46.200 desktop.google.com
203.208.46.200 desktop.l.google.com
203.208.46.200 desktop2.google.com
203.208.46.200 developers.google.com
203.208.46.200 ditu.google.com
203.208.46.200 dl.google.com
203.208.46.200 dl.l.google.com
203.208.46.200 dl-ssl.google.com
203.208.46.200 docs.google.com
203.208.46.200 docs0.google.com
203.208.46.200 docs1.google.com
203.208.46.200 docs2.google.com
203.208.46.200 docs3.google.com
203.208.46.200 docs4.google.com
203.208.46.200 docs5.google.com
203.208.46.200 docs6.google.com
203.208.46.200 docs7.google.com
203.208.46.200 docs8.google.com
203.208.46.200 docs9.google.com
203.208.46.200 drive.google.com
203.208.46.200 drive0.google.com
203.208.46.200 drive1.google.com
203.208.46.200 drive2.google.com
203.208.46.200 drive3.google.com
203.208.46.200 drive4.google.com
203.208.46.200 drive5.google.com
203.208.46.200 drive6.google.com
203.208.46.200 drive7.google.com
203.208.46.200 drive8.google.com
203.208.46.200 drive9.google.com
203.208.46.200 earth.google.com
203.208.46.200 encrypted.google.com
203.208.46.200 encrypted-tbn.l.google.com
203.208.46.200 encrypted-tbn0.google.com
203.208.46.200 encrypted-tbn1.google.com
203.208.46.200 encrypted-tbn2.google.com
203.208.46.200 encrypted-tbn3.google.com
203.208.46.200 feedburner.google.com
203.208.46.200 feedproxy.google.com
203.208.46.221 filetransferenabled.mail.google.com
203.208.46.200 finance.google.com
203.208.46.200 fusion.google.com
203.208.46.200 geoauth.google.com
203.208.46.200 gg.google.com
203.208.46.200 ghs.google.com
203.208.46.200 ghs.l.google.com
203.208.46.200 ghs46.google.com
203.208.46.200 ghs46.l.google.com
203.208.46.200 google.com
203.208.46.200 googleapis.l.google.com
203.208.46.200 googleapis-ajax.google.com
203.208.46.200 googleapis-ajax.l.google.com
203.208.46.200 googlecode.l.google.com
203.208.46.200 google-public-dns-a.google.com
203.208.46.200 google-public-dns-b.google.com
203.208.46.200 goto.google.com
203.208.46.200 groups.google.com
203.208.46.200 groups.l.google.com
203.208.46.200 groups-beta.google.com
203.208.46.200 gxc.google.com
203.208.46.200 id.google.com
203.208.46.200 id.l.google.com
203.208.46.200 images.google.com
203.208.46.200 images.l.google.com
203.208.46.200 investor.google.com
203.208.46.200 jmt0.google.com
203.208.46.200 kh.google.com
203.208.46.200 kh.l.google.com
203.208.46.200 khm.google.com
203.208.46.200 khm.l.google.com
203.208.46.200 khm0.google.com
203.208.46.200 khm1.google.com
203.208.46.200 khm2.google.com
203.208.46.200 khm3.google.com
203.208.46.200 khmdb.google.com
203.208.46.200 khms.google.com
203.208.46.200 khms.l.google.com
203.208.46.200 khms0.google.com
203.208.46.200 khms1.google.com
203.208.46.200 khms2.google.com
203.208.46.200 khms3.google.com
203.208.46.200 labs.google.com
203.208.46.200 large-uploads.l.google.com
203.208.46.200 lh2.google.com
203.208.46.200 lh2.l.google.com
203.208.46.200 lh3.google.com
203.208.46.200 lh4.google.com
203.208.46.200 lh5.google.com
203.208.46.200 lh6.google.com
203.208.46.200 linkhelp.clients.google.com
203.208.46.200 local.google.com
203.208.46.200 m.google.com
203.208.46.213 mail.google.com
203.208.46.200 map.google.com
203.208.46.200 maps.google.com
203.208.46.200 maps.l.google.com
203.208.46.200 maps-api-ssl.google.com
203.208.46.200 mars.google.com
203.208.46.200 mobile.l.google.com
203.208.46.200 mobile-gtalk.l.google.com
203.208.46.200 mobilemaps.clients.google.com
203.208.46.200 mt.google.com
203.208.46.200 mt.l.google.com
203.208.46.200 mt0.google.com
203.208.46.200 mt1.google.com
203.208.46.200 mt2.google.com
203.208.46.200 mt3.google.com
#203.208.46.200 mtalk.google.com
203.208.46.200 mts.google.com
203.208.46.200 mts.l.google.com
203.208.46.200 mts0.google.com
203.208.46.200 mts1.google.com
203.208.46.200 mts2.google.com
203.208.46.200 mts3.google.com
203.208.46.200 music.google.com
203.208.46.200 music-streaming.l.google.com
203.208.46.200 mw1.google.com
203.208.46.200 mw2.google.com
203.208.46.200 news.google.com
203.208.46.200 news.l.google.com
203.208.46.200 pack.google.com
203.208.46.200 photos.google.com
203.208.46.200 photos-ugc.l.google.com
203.208.46.200 picasa.google.com
203.208.46.200 picasaweb.google.com
203.208.46.200 picasaweb.l.google.com
203.208.46.200 places.google.com
203.208.46.200 play.google.com
203.208.46.200 productforums.google.com
203.208.46.200 profiles.google.com
203.208.46.200 reader.google.com
203.208.46.200 safebrowsing.cache.l.google.com
203.208.46.200 safebrowsing.clients.google.com
203.208.46.200 safebrowsing.google.com
203.208.46.200 safebrowsing-cache.google.com
203.208.46.200 sandbox.google.com
203.208.46.200 sb.google.com
203.208.46.200 sb.l.google.com
203.208.46.200 sb-ssl.google.com
203.208.46.200 sb-ssl.l.google.com
203.208.46.200 scholar.google.com
203.208.46.200 scholar.l.google.com
203.208.46.200 script.google.com
203.208.46.200 services.google.com
203.208.46.200 sites.google.com
203.208.46.200 sketchup.google.com
203.208.46.200 sketchup.l.google.com
203.208.46.200 spreadsheet.google.com
203.208.46.200 spreadsheets.google.com
203.208.46.200 spreadsheets.l.google.com
203.208.46.200 spreadsheets0.google.com
203.208.46.200 spreadsheets1.google.com
203.208.46.200 spreadsheets2.google.com
203.208.46.200 spreadsheets3.google.com
203.208.46.200 spreadsheets4.google.com
203.208.46.200 spreadsheets5.google.com
203.208.46.200 spreadsheets6.google.com
203.208.46.200 spreadsheets7.google.com
203.208.46.200 spreadsheets8.google.com
203.208.46.200 spreadsheets9.google.com
203.208.46.200 spreadsheets-china.l.google.com
203.208.46.200 suggestqueries.google.com
203.208.46.200 suggestqueries.l.google.com
203.208.46.200 support.google.com
173.194.70.125 talk.google.com
203.208.46.200 talkgadget.google.com
203.208.46.200 tbn0.google.com
203.208.46.200 tbn1.google.com
203.208.46.200 tbn2.google.com
203.208.46.200 tbn3.google.com
203.208.46.200 toolbar.google.com
203.208.46.200 toolbarqueries.clients.google.com
203.208.46.200 toolbarqueries.google.com
203.208.46.200 toolbarqueries.l.google.com
203.208.46.200 tools.google.com
203.208.46.200 tools.l.google.com
203.208.46.200 translate.google.com
203.208.46.200 trends.google.com
203.208.46.200 upload.docs.google.com
203.208.46.200 upload.drive.google.com
203.208.46.200 uploads.code.google.com
203.208.46.200 uploadsj.clients.google.com
203.208.46.200 v3.cache1.c.docs.google.com
203.208.46.200 video.google.com
203.208.46.200 video-stats.l.google.com
203.208.46.200 voice.google.com
203.208.46.200 wallet.google.com
203.208.46.200 wifi.google.com
203.208.46.200 wifi.l.google.com
203.208.46.200 wire.l.google.com
203.208.46.200 writely.google.com
203.208.46.200 writely.l.google.com
203.208.46.200 writely-china.l.google.com
203.208.46.200 writely-com.l.google.com
203.208.46.200 www.google.com
203.208.46.200 www.l.google.com
203.208.46.200 www2.l.google.com
203.208.46.200 www3.l.google.com
203.208.46.200 www4.l.google.com
203.208.46.200 ytstatic.l.google.com


203.208.46.202 0-open-opensocial.googleusercontent.com
203.208.46.202 0-focus-opensocial.googleusercontent.com
203.208.46.202 1-focus-opensocial.googleusercontent.com
203.208.46.202 1-open-opensocial.googleusercontent.com
203.208.46.202 1-ps.googleusercontent.com
203.208.46.202 2-focus-opensocial.googleusercontent.com
203.208.46.202 2-open-opensocial.googleusercontent.com
203.208.46.202 2-ps.googleusercontent.com
203.208.46.202 3-focus-opensocial.googleusercontent.com
203.208.46.202 3-ps.googleusercontent.com
203.208.46.202 3hdrrlnlknhi77nrmsjnjr152ueo3soc-a-calendar-opensocial.googleusercontent.com
203.208.46.202 3-open-opensocial.googleusercontent.com
203.208.46.202 4-ps.googleusercontent.com
203.208.46.202 4fjvqid3r3oq66t548clrdj52df15coc-a-oz-opensocial.googleusercontent.com
203.208.46.202 53rd6p0catml6vat6qra84rs0del836d-a-oz-opensocial.googleusercontent.com
203.208.46.202 59cbv4l9s05pbaks9v77vc3mengeqors-a-oz-opensocial.googleusercontent.com
203.208.46.202 8kubpeu8314p2efdd7jlv09an9i2ljdo-a-oz-opensocial.googleusercontent.com
203.208.46.202 adstvca8k2ooaknjjmv89j22n9t676ve-a-oz-opensocial.googleusercontent.com
203.208.46.202 a-oz-opensocial.googleusercontent.com
203.208.46.202 blogger.googleusercontent.com
203.208.46.202 bt26mravu2qpe56n8gnmjnpv2inl84bf-a-oz-opensocial.googleusercontent.com
203.208.46.202 clients1.googleusercontent.com
203.208.46.202 clients2.googleusercontent.com
203.208.46.202 clients3.googleusercontent.com
203.208.46.202 clients4.googleusercontent.com
203.208.46.202 clients5.googleusercontent.com
203.208.46.202 clients6.googleusercontent.com
203.208.46.202 clients7.googleusercontent.com
203.208.46.202 code-opensocial.googleusercontent.com
203.208.46.202 debh8vg7vd93bco3prdajidmm7dhql3f-a-oz-opensocial.googleusercontent.com
203.208.46.202 doc-00-7o-docs.googleusercontent.com
203.208.46.202 doc-08-7o-docs.googleusercontent.com
203.208.46.202 doc-0c-7o-docs.googleusercontent.com
203.208.46.202 doc-0g-7o-docs.googleusercontent.com
203.208.46.202 doc-0s-7o-docs.googleusercontent.com
203.208.46.202 doc-10-7o-docs.googleusercontent.com
203.208.46.202 doc-14-7o-docs.googleusercontent.com
203.208.46.202 feedback.googleusercontent.com
203.208.46.202 googlehosted.l.googleusercontent.com
203.208.46.202 gp0.googleusercontent.com
203.208.46.202 gp1.googleusercontent.com
203.208.46.202 gp2.googleusercontent.com
203.208.46.202 gp3.googleusercontent.com
203.208.46.202 gp4.googleusercontent.com
203.208.46.202 gp5.googleusercontent.com
203.208.46.202 gp6.googleusercontent.com
203.208.46.202 hsco54a20sh11q9jkmb51ad2n3hmkmrg-a-oz-opensocial.googleusercontent.com
203.208.46.202 i8brh95qor6r54nkl52hidj2ggcs4jgm-a-oz-opensocial.googleusercontent.com
203.208.46.202 images1-focus-opensocial.googleusercontent.com
203.208.46.202 images2-focus-opensocial.googleusercontent.com
203.208.46.202 images3-focus-opensocial.googleusercontent.com
203.208.46.202 images4-focus-opensocial.googleusercontent.com
203.208.46.202 images5-focus-opensocial.googleusercontent.com
203.208.46.202 images6-focus-opensocial.googleusercontent.com
203.208.46.202 images7-focus-opensocial.googleusercontent.com
203.208.46.202 images8-focus-opensocial.googleusercontent.com
203.208.46.202 images9-focus-opensocial.googleusercontent.com
203.208.46.202 images-docs-opensocial.googleusercontent.com
203.208.46.202 images-oz-opensocial.googleusercontent.com
203.208.46.202 k6v18tjr24doa89b55o3na41kn4v73eb-a-oz-opensocial.googleusercontent.com
203.208.46.202 lh1.googleusercontent.com
203.208.46.202 lh2.googleusercontent.com
203.208.46.202 lh3.googleusercontent.com
203.208.46.202 lh4.googleusercontent.com
203.208.46.202 lh5.googleusercontent.com
203.208.46.202 lh6.googleusercontent.com
203.208.46.202 mail-attachment.googleusercontent.com
203.208.46.202 music.googleusercontent.com
203.208.46.202 music-onebox.googleusercontent.com
203.208.46.202 oauth.googleusercontent.com
203.208.46.202 ob7f2qc0i50kbjnc81vkhgmb5hsv7a8l-a-oz-opensocial.googleusercontent.com
203.208.46.202 ode25pfjgmvpquh3b1oqo31ti5ibg5fr-a-calendar.opensocial.googleusercontent.com
203.208.46.202 qhie5b8u979rnch1q0hqbrmbkn9estf7-a-oz-opensocial.googleusercontent.com
203.208.46.202 r70rmsn4s0rhk6cehcbbcbfbs31pu0va-a-oz-opensocial.googleusercontent.com
203.208.46.202 rbjhe237k979f79d87gmenp3gejfonu9-a-oz-opensocial.googleusercontent.com
203.208.46.202 s1.googleusercontent.com
203.208.46.202 s2.googleusercontent.com
203.208.46.202 s3.googleusercontent.com
203.208.46.202 s4.googleusercontent.com
203.208.46.202 s5.googleusercontent.com
203.208.46.202 s6.googleusercontent.com
203.208.46.202 spreadsheets-opensocial.googleusercontent.com
203.208.46.202 static.googleusercontent.com
203.208.46.202 t.doc-0-0-sj.sj.googleusercontent.com
203.208.46.202 themes.googleusercontent.com
203.208.46.202 translate.googleusercontent.com
203.208.46.202 u807isd5egseeabjccgcns005p2miucq-a-oz-opensocial.googleusercontent.com
203.208.46.202 upt14k1i2veesusrda9nfotcrbp9d7p5-a-oz-opensocial.googleusercontent.com
203.208.46.202 webcache.googleusercontent.com
203.208.46.202 www.googleusercontent.com
203.208.46.202 www-calendar-opensocial.googleusercontent.com
203.208.46.202 www-fc-opensocial.googleusercontent.com
203.208.46.202 www-focus-opensocial.googleusercontent.com
203.208.46.202 www-gm-opensocial.googleusercontent.com
203.208.46.202 www-kix-opensocial.googleusercontent.com
203.208.46.202 www-open-opensocial.googleusercontent.com
203.208.46.202 www-opensocial.googleusercontent.com
203.208.46.202 www-opensocial-sandbox.googleusercontent.com
203.208.46.202 www-oz-opensocial.googleusercontent.com


203.208.46.207 csi.gstatic.com
203.208.46.207 g0.gstatic.com
203.208.46.207 g1.gstatic.com
203.208.46.207 g2.gstatic.com
203.208.46.207 g3.gstatic.com
203.208.46.207 maps.gstatic.com
203.208.46.207 mt0.gstatic.com
203.208.46.207 mt1.gstatic.com
203.208.46.207 mt2.gstatic.com
203.208.46.207 mt3.gstatic.com
203.208.46.207 mt4.gstatic.com
203.208.46.207 mt5.gstatic.com
203.208.46.207 mt6.gstatic.com
203.208.46.207 mt7.gstatic.com
203.208.46.207 ssl.gstatic.com
203.208.46.207 t0.gstatic.com
203.208.46.207 t1.gstatic.com
203.208.46.207 t2.gstatic.com
203.208.46.207 t3.gstatic.com
203.208.46.207 www.gstatic.com


203.208.46.170 lh1.ggpht.com
203.208.46.170 lh2.ggpht.com
203.208.46.170 lh3.ggpht.com
203.208.46.170 lh4.ggpht.com
203.208.46.170 lh5.ggpht.com
203.208.46.170 lh6.ggpht.com
203.208.46.170 nt0.ggpht.com
203.208.46.170 nt1.ggpht.com
203.208.46.170 nt2.ggpht.com
203.208.46.170 nt3.ggpht.com
203.208.46.170 nt4.ggpht.com
203.208.46.170 nt5.ggpht.com


203.208.46.200 appspot.com
173.194.64.141 chrometophone.appspot.com
203.208.46.200 evolutionofweb.appspot.com
203.208.46.200 googcloudlabs.appspot.com
203.208.46.200 gv-gadget.appspot.com
203.208.46.200 magnifier.blogspot.com
203.208.46.200 moderator.appspot.com
203.208.46.200 newsfeed-dot-latest-dot-rovio-ad-engine.appspot.com
203.208.46.200 productideas.appspot.com
203.208.46.200 project-slingshot-gp.appspot.com
203.208.46.200 r2303.latest.project-slingshot-hr.appspot.com
203.208.46.200 r3085-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3091-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3101-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3269-dot-latest-dot-project-slingshot-gp.appspot.com
203.208.46.200 r3432-dot-latest-dot-project-slingshot-hr.appspot.com
203.208.46.200 r4681-dot-latest-dot-project-slingshot-hr.appspot.com
203.208.46.170 r7647-dot-latest-dot-project-slingshot-hr.appspot.com
203.208.46.200 wcproxyx.appspot.com
203.208.46.200 www.appspot.com


203.208.46.200 ajax.googleapis.com
203.208.46.200 chart.googleapis.com
203.208.46.200 fonts.googleapis.com
203.208.46.200 maps.googleapis.com
203.208.46.200 mt0.googleapis.com
203.208.46.200 mt1.googleapis.com
203.208.46.200 mt2.googleapis.com
203.208.46.200 mt3.googleapis.com
203.208.46.200 redirector-bigcache.googleapis.com
203.208.46.200 translate.googleapis.com
173.194.66.95 www.googleapis.com


203.208.46.200 autoproxy-gfwlist.googlecode.com
203.208.46.200 chromium.googlecode.com
203.208.46.200 closure-library.googlecode.com
203.208.46.200 earth-api-samples.googlecode.com
203.208.46.200 gmaps-samples-flash.googlecode.com
203.208.46.200 google-code-feed-gadget.googlecode.com


203.208.46.200 blogsearch.google.cn
203.208.46.200 ditu.google.cn
203.208.46.200 gg.google.cn
203.208.46.200 id.google.cn
203.208.46.200 maps.gstatic.cn
203.208.46.200 m.google.cn
203.208.46.200 mt.google.cn
203.208.46.200 mt0.google.cn
203.208.46.200 mt1.google.cn
203.208.46.200 mt2.google.cn
203.208.46.200 mt3.google.cn
203.208.46.200 news.google.cn
203.208.46.200 scholar.google.cn
203.208.46.200 translate.google.cn
203.208.46.200 www.google.cn
203.208.46.200 www.gstatic.cn


203.208.46.200 accounts.google.com.hk
203.208.46.200 blogsearch.google.com.hk
203.208.46.200 books.google.com.hk
203.208.46.200 clients1.google.com.hk
203.208.46.200 desktop.google.com.hk
203.208.46.200 encrypted.google.com.hk
203.208.46.200 groups.google.com.hk
203.208.46.200 gxc.google.com.hk
203.208.46.200 id.google.com.hk
203.208.46.200 images.google.com.hk
203.208.46.200 m.google.com.hk
203.208.46.200 maps.google.com.hk
203.208.46.200 news.google.com.hk
203.208.46.200 picasaweb.google.com.hk
203.208.46.200 plus.url.google.com.hk
203.208.46.200 scholar.google.com.hk
203.208.46.200 toolbar.google.com.hk
203.208.46.200 toolbarqueries.google.com.hk
203.208.46.200 translate.google.com.hk
203.208.46.200 translate.google.com.hk
203.208.46.200 wenda.google.com.hk
203.208.46.200 www.google.com.hk


203.208.46.200 accounts.blogger.com
203.208.46.200 android.googlesource.com
203.208.46.200 auth.keyhole.com
203.208.46.200 chrome.angrybirds.com
203.208.46.200 developer.android.com
203.208.46.200 domains.googlesyndication.com
203.208.46.200 earthengine.googlelabs.com
203.208.46.200 feeds.feedburner.com
203.208.46.200 g.co
203.208.46.200 goo.gl
203.208.46.162 listen.googlelabs.com
203.208.46.200 m.googlemail.com
203.208.46.200 market.android.com
203.208.46.163 ngrams.googlelabs.com
173.194.37.99 panoramio.com
203.208.46.222 smarthosts.googlecode.com
203.208.46.222 ssl.google-analytics.com
173.194.76.128 static.panoramio.com
203.208.46.200 www.blogger.com
203.208.46.200 www.googleadservices.com
203.208.46.222 www.google-analytics.com
203.208.46.200 www.googlelabs.com
203.208.46.222 www.googlesource.com
173.194.37.99 www.panoramio.com


203.208.46.200 plus.google.com
203.208.46.200 plus.url.google.com
203.208.46.200 plusone.google.com
#Google Services END


#Facebook Start
69.171.235.16 5-pct.channel.facebook.com
173.252.100.17 api-read.facebook.com
173.252.100.17 api.facebook.com
69.171.237.36 apps.facebook.com
61.213.189.98 b.static.ak.facebook.com
61.213.189.120 b.static.ak.fbcdn.net
66.220.145.63 bigzipfiles.facebook.com
61.213.189.113 creative.ak.fbcdn.net
66.152.103.74 external.ak.fbcdn.net
66.220.149.88 c.facebook.com
69.171.227.26 chat.facebook.com
66.220.147.96 check4.facebook.com
184.31.111.139 connect.facebook.net
69.171.227.19 creativeupload.facebook.com
69.171.240.99 d.facebook.com
173.252.100.17 developers.facebook.com
66.220.149.90 error.facebook.com
173.252.100.18 facebook.com
61.213.189.113 fbcdn.net
64.213.102.26 fbcdn-profile-a.akamaihd.net
173.223.232.67 fbcdn-sphotos-a.akamaihd.net
173.252.100.17 graph.facebook.com
66.220.151.33 hphotos-ak-snc1.facebook.com
66.220.151.33 hphotos-ak-snc3.facebook.com
69.171.240.10 hphotos-ash4.fbcdn.net
69.63.183.200 hphotos-pao1.fbcdn.net
66.220.151.33 hphotos-snc1.fbcdn.net
66.220.151.32 hphotos-snc3.fbcdn.net
66.220.151.22 hphotos-snc6.fbcdn.net
69.171.227.24 hphotos-snc7.fbcdn.net
66.220.144.43 ldap.thefacebook.com
173.252.100.25 m.facebook.com
66.220.149.96 o.facebook.com
69.171.233.33 orcart.facebook.com
69.171.245.18 photos-ak-ash1.facebook.com
69.171.245.18 photos-ash1.facebook.com
173.252.100.27 pixel.facebook.com
118.214.190.105 profile.ak.facebook.com
61.213.189.114 profile.ak.fbcdn.net
69.171.247.22 s-static.facebook.com
61.213.189.113 s-hprofile-sf2p.fbcdn.net
184.26.194.110 s-static.ak.facebook.com
23.5.157.177 s-static.ak.fbcdn.net
69.171.227.30 secure-media.facebook.com
69.171.227.30 secure-media.fbcdn.net
66.220.149.96 ssl.facebook.com
69.171.247.38 ssl.connect.facebook.com
69.63.189.76 star.facebook.com
61.213.189.98 static.ak.facebook.com
65.32.34.136 static.ak.fbcdn.net
173.252.100.27 upload.facebook.com
66.220.144.41 vpn.tfbnw.net
120.29.145.50 vthumb.ak.fbcdn.net
66.220.151.31 vupload.facebook.com
69.171.225.31 www.connect.facebook.com
173.252.100.17 www.facebook.com
69.171.242.72 zh-CN.facebook.com
#Facebook End


#Flickr START
98.136.43.76 geo.yahoo.com
68.142.250.161 l.yimg.com
96.6.93.227 s.yimg.com
98.137.88.88 d.yimg.com
68.142.196.57 c5.ah.yahoo.com
124.108.120.124 sa.edit.yahoo.com
66.163.168.247 open.login.yahoo.com
124.108.97.193 login.yahoo.com
209.191.92.115 edit.yahoo.com
209.191.121.31 up.flickr.com
209.191.105.102 adjax.flickr.yahoo.com
204.0.5.35 content.yieldmanager.edgesuite.net
204.0.5.34 us.js2.yimg.com


#data from HostsX
68.142.214.24 flickr.com
66.196.66.157 www.flickr.com
68.142.214.43 static.flickr.com
77.238.160.184 static.flickr.com
209.191.105.102 adjax.flickr.yahoo.com
68.142.214.43 farm1.staticflickr.com
68.142.214.43 mud.farm1.staticflickr.com
69.147.90.159 farm2.staticflickr.com
69.147.90.159 sp1.farm2.staticflickr.com
77.238.160.184 farm3.staticflickr.com
98.137.205.236 bf1.farm3.staticflickr.com
216.39.54.34 gq1.farm3.staticflickr.com
69.147.90.215 sp1.farm3.staticflickr.com
76.13.18.77 farm4.staticflickr.com
76.13.18.77 ac4.farm4.staticflickr.com
67.195.19.62 gq1.farm4.staticflickr.com
76.13.18.79 farm5.staticflickr.com
67.195.19.65 gq1.farm5.staticflickr.com
98.136.171.208 farm6.staticflickr.com
98.139.21.45 bf1.farm6.staticflickr.com
98.136.171.208 gq1.farm6.staticflickr.com
98.138.250.88 farm7.staticflickr.com
98.139.235.135 bf1.farm7.staticflickr.com
98.138.250.88 ne1.farm7.staticflickr.com
#Flickr END


#Twitter START
199.16.156.18 twitter.com
199.16.156.18 mobile.twitter.com
199.16.156.18 api.twitter.com


199.16.156.47 pic.twitter.com
199.59.148.136 stream.twitter.com
199.59.148.137 sitestream.twitter.com
199.59.148.135 betastream.twitter.com
199.59.148.148 upload.twitter.com
199.59.149.137 dev.twitter.com
199.59.149.91 pay.twitter.com
199.59.148.149 urls-real.api.twitter.com
199.16.156.81 userstream.twitter.com
199.16.156.12 support.twitter.com


#199.59.148.210 t.co
69.58.188.34 bitly.com


208.87.33.151 api.mobilepicture.com


199.59.148.16 a0.twimg.com
199.59.148.16 a1.twimg.com
199.59.148.16 p.twimg.com
184.169.75.33 si0.twimg.com
184.169.75.33 si1.twimg.com
184.169.75.33 si2.twimg.com
184.169.75.33 si3.twimg.com
184.169.75.33 si4.twimg.com
184.169.75.33 si5.twimg.com
199.16.156.77 image-proxy-origin.twimg.com


209.17.70.144 oi40.tinypic.com
209.17.70.143 oi41.tinypic.com
209.17.70.143 oi42.tinypic.com
209.17.70.143 oi43.tinypic.com
209.17.70.143 oi44.tinypic.com
209.17.70.143 oi45.tinypic.com
209.17.70.143 oi46.tinypic.com
209.17.70.143 oi47.tinypic.com
209.17.70.143 oi48.tinypic.com
209.17.70.143 oi49.tinypic.com
209.17.70.143 oi50.tinypic.com
209.17.70.144 oi51.tinypic.com
209.17.70.144 oi52.tinypic.com
209.17.70.144 oi53.tinypic.com
209.17.70.144 oi54.tinypic.com
209.17.70.144 oi55.tinypic.com
209.17.70.144 oi56.tinypic.com


50.97.168.42 web1.twitpic.com
50.23.200.233 web10.twitpic.com
50.97.168.43 web2.twitpic.com
50.97.168.43 web3.twitpic.com
50.97.168.40 web4.twitpic.com
50.97.168.41 web5.twitpic.com
50.23.200.231 web6.twitpic.com
50.23.200.232 web7.twitpic.com
50.23.200.229 web8.twitpic.com
50.23.200.228 web9.twitpic.com
174.37.33.172 m1.twitpic.com
50.23.200.230 twitpic.com


208.94.0.61 a.yfrog.com
208.94.0.61 yfrog.com
208.94.0.61 www.yfrog.com
#Twitter END


#Adobe Activation START
0.0.0.0 3dns-2.adobe.com
0.0.0.0 3dns-3.adobe.com
0.0.0.0 activate.adobe.com
0.0.0.0 activate-sea.adobe.com
0.0.0.0 activate-sjc0.adobe.com
0.0.0.0 adobe-dns.adobe.com
0.0.0.0 adobe-dns-2.adobe.com
0.0.0.0 adobe-dns-3.adobe.com
0.0.0.0 ereg.adobe.com
0.0.0.0 hl2rcv.adobe.com
0.0.0.0 practivate.adobe.com
0.0.0.0 wip3.adobe.com
0.0.0.0 activate.wip3.adobe.com
0.0.0.0 ereg.wip3.adobe.com
0.0.0.0 wwis-dubc1-vip60.adobe.com
#Adobe Activation END


#YouTube START
203.208.46.206 accounts.youtube.com
203.208.46.206 apiblog.youtube.com
203.208.46.206 help.youtube.com
203.208.46.206 i.ytimg.com
203.208.46.206 i1.ytimg.com
203.208.46.206 i2.ytimg.com
203.208.46.206 i3.ytimg.com
203.208.46.206 i4.ytimg.com
203.208.46.206 insight.youtube.com
203.208.46.206 m.youtube.com
203.208.46.206 s.ytimg.com
203.208.46.206 www.youtube.com
203.208.46.206 ytimg.l.google.com
#YouTube END


#GitHub START
204.232.175.78 documentcloud.github.com
207.97.227.239 github.com
204.232.175.94 gist.github.com
107.20.136.254 help.github.com
207.97.227.252 nodeload.github.com
199.27.76.130 raw.github.com
107.22.3.110 status.github.com
204.232.175.78 training.github.com
207.97.227.243 www.github.com
#GitHub END


#Feedly START
173.194.79.141 feedly-beta.appspot.com
173.194.74.121 s3.feedly.com
#Feedly END


#Others START
38.229.72.14 www.torproject.org
#Others END


#SmartHosts END
203.208.46.200 webrtc.googlecode.com
203.208.46.222 smarthosts.googlecode.com
203.208.46.200 autoproxy-gfwlist.googlecode.com
203.208.46.200 chromium.googlecode.com
203.208.46.200 closure-library.googlecode.com
203.208.46.200 earth-api-samples.googlecode.com
203.208.46.200 gmaps-samples-flash.googlecode.com
static int forward_query(int udpfd, union mysockaddr *udpaddr, struct all_addr *dst_addr, unsigned int dst_iface, struct dns_header *header, size_t plen, time_t now, struct frec *forward) { char *domain = NULL; int type = 0, norebind = 0; struct all_addr *addrp = NULL; unsigned int crc = questions_crc(header, plen, daemon->namebuff); unsigned int flags = 0; unsigned int gotname = extract_request(header, plen, daemon->namebuff, NULL); struct server *start = NULL; /* RFC 4035: sect 4.6 para 2 */ header->hb4 &= ~HB4_AD; /* may be no servers available. */ if (!daemon->servers) forward = NULL; else if (forward || (forward = lookup_frec_by_sender(ntohs(header->id), udpaddr, crc))) { /* retry on existing query, send to all available servers */ domain = forward->sentto->domain; forward->sentto->failed_queries++; if (!option_bool(OPT_ORDER)) { forward->forwardall = 1; daemon->last_server = NULL; } type = forward->sentto->flags & SERV_TYPE; if (!(start = forward->sentto->next)) start = daemon->servers; /* at end of list, recycle */ header->id = htons(forward->new_id); } else { if (gotname) flags = search_servers(now, &addrp, gotname, daemon->namebuff, &type, &domain, &norebind); if (!flags && !(forward = get_new_frec(now, NULL))) /* table full - server failure. */ flags = F_NEG; if (forward) { forward->source = *udpaddr; forward->dest = *dst_addr; forward->iface = dst_iface; forward->orig_id = ntohs(header->id); forward->new_id = get_id(crc); forward->fd = udpfd; forward->crc = crc; forward->forwardall = 0; if (norebind) forward->flags |= FREC_NOREBIND; if (header->hb4 & HB4_CD) forward->flags |= FREC_CHECKING_DISABLED; header->id = htons(forward->new_id); /* In strict_order mode, always try servers in the order specified in resolv.conf, if a domain is given always try all the available servers, otherwise, use the one last known to work. */ if (type == 0) { if (option_bool(OPT_ORDER)) start = daemon->servers; else if (!(start = daemon->last_server) || daemon->forwardcount++ > FORWARD_TEST || difftime(now, daemon->forwardtime) > FORWARD_TIME) { start = daemon->servers; forward->forwardall = 1; daemon->forwardcount = 0; daemon->forwardtime = now; } } else { start = daemon->servers; if (!option_bool(OPT_ORDER)) forward->forwardall = 1; } } } /* check for send errors here (no route to host) if we fail to send to all nameservers, send back an error packet straight away (helps modem users when offline) */ if (!flags && forward) { struct server *firstsentto = start; int forwarded = 0; if (udpaddr && option_bool(OPT_ADD_MAC)) plen = add_mac(header, plen, ((char *) header) + PACKETSZ, udpaddr); while (1) { /* only send to servers dealing with our domain. domain may be NULL, in which case server->domain must be NULL also. */ if (type == (start->flags & SERV_TYPE) && (type != SERV_HAS_DOMAIN || hostname_isequal(domain, start->domain)) && !(start->flags & SERV_LITERAL_ADDRESS)) { int fd; /* find server socket to use, may need to get random one. */ if (start->sfd) fd = start->sfd->fd; else { #ifdef HAVE_IPV6 if (start->addr.sa.sa_family == AF_INET6) { if (!forward->rfd6 && !(forward->rfd6 = allocate_rfd(AF_INET6))) break; daemon->rfd_save = forward->rfd6; fd = forward->rfd6->fd; } else #endif { if (!forward->rfd4 && !(forward->rfd4 = allocate_rfd(AF_INET))) break; daemon->rfd_save = forward->rfd4; fd = forward->rfd4->fd; } #ifdef HAVE_CONNTRACK /* Copy connection mark of incoming query to outgoing connection. */ if (option_bool(OPT_CONNTRACK)) { unsigned int mark; if (get_incoming_mark(udpaddr, dst_addr, 0, &mark)) setsockopt(fd, SOL_SOCKET, SO_MARK, &mark, sizeof(unsigned int)); } #endif } if (sendto(fd, (char *)header, plen, 0, &start->addr.sa, sa_len(&start->addr)) == -1) { if (retry_send()) continue; } else { /* Keep info in case we want to re-send this packet */ daemon->srv_save = start; daemon->packet_len = plen; if (!gotname) strcpy(daemon->namebuff, "query"); if (start->addr.sa.sa_family == AF_INET) log_query(F_SERVER | F_IPV4 | F_FORWARD, daemon->namebuff, (struct all_addr *)&start->addr.in.sin_addr, NULL); #ifdef HAVE_IPV6 else log_query(F_SERVER | F_IPV6 | F_FORWARD, daemon->namebuff, (struct all_addr *)&start->addr.in6.sin6_addr, NULL); #endif start->queries++; forwarded = 1; forward->sentto = start; if (!forward->forwardall) break; forward->forwardall++; } } if (!(start = start->next)) start = daemon->servers; if (start == firstsentto) break; } if (forwarded) return 1; /* could not send on, prepare to return */ header->id = htons(forward->orig_id); free_frec(forward); /* cancel */ } /* could not send on, return empty answer or address if known for whole domain */ if (udpfd != -1) { plen = setup_reply(header, plen, addrp, flags, daemon->local_ttl); send_from(udpfd, option_bool(OPT_NOWILD), (char *)header, plen, udpaddr, dst_addr, dst_iface); } return 0; }
最新发布
09-02
<think> 我们正在解析一个用于转发DNS查询的复杂函数。根据要求,我们需要将其按逻辑功能分成不同模块进行解析。 注意:用户要求不要整个一起解析,而是分成模块解析。因此,我们将根据代码的逻辑结构划分模块并解释。 函数:forward_query 参数说明: udpfd: UDP套接字描述符(用于发送响应) udpaddr: 客户端地址(用于发送响应) dst_addr: 目的地址(用于发送响应) dst_iface: 目的接口索引 header: DNS报文头部指针 plen: DNS报文长度 now: 当前时间 forward: 指向转发记录的指针(可能为NULL) 函数功能:该函数负责将DNS查询转发给上游服务器,并处理转发失败的情况。 我们将函数分为以下几个模块: 模块1:变量初始化与预处理 模块2:转发记录查找与设置(分为三种情况:无服务器、已有转发记录、新转发记录) 模块3:转发查询到上游服务器(包括选择服务器、发送查询、处理错误) 模块4:转发失败处理(发送失败响应) 下面按模块进行解析。 </think> ### 模块化解析 #### 模块1:头部预处理与转发记录查找 ```c /* RFC 4035: sect 4.6 para 2 */ header->hb4 &= ~HB4_AD; // 清除AD(认证数据)标志位 /* 转发记录处理 */ if (!daemon->servers) forward = NULL; // 无可用上游服务器 else if (forward || (forward = lookup_frec_by_sender(...))) { // 重试已有查询 domain = forward->sentto->domain; forward->sentto->failed_queries++; // 失败计数 if (!option_bool(OPT_ORDER)) { forward->forwardall = 1; // 启用全服务器转发 daemon->last_server = NULL; } header->id = htons(forward->new_id); // 使用新ID } ``` - **核心任务**: - 按照RFC 4035清除AD标志 - 处理三种情况: 1. 无可用服务器(`forward = NULL`) 2. 重试已有查询(更新失败计数) 3. 创建新查询记录 - **关键操作**: - `lookup_frec_by_sender()`:通过ID和地址匹配现有查询 - `failed_queries++`:记录服务器失败次数 #### 模块2:新转发记录初始化 ```c else { if (gotname) flags = search_servers(...); // 域名匹配服务器 if (!flags && !(forward = get_new_frec(now, NULL))) flags = F_NEG; // 记录表满时设置失败标志 if (forward) { // 初始化转发记录字段 forward->source = *udpaddr; forward->orig_id = ntohs(header->id); forward->new_id = get_id(crc); // 生成新ID header->id = htons(forward->new_id); // 替换报文ID // 服务器选择策略 if (option_bool(OPT_ORDER)) start = daemon->servers; // 严格顺序 else forward->forwardall = 1; // 全服务器模式 } } ``` - **初始化流程**: 1. `search_servers()`:查找匹配域名的服务器 2. `get_new_frec()`:分配新转发记录 3. 填充源地址、接口、原始ID等关键字段 - **ID处理**: - `get_id(crc)`:基于查询内容生成新ID - 替换报文ID实现查询跟踪 - **转发策略**: - `OPT_ORDER`:严格按配置文件顺序 - 默认:全服务器广播(`forwardall=1`) #### 模块3:查询发送与服务器选择 ```c while (1) { if (type == (start->flags & SERV_TYPE) && ... ) { // 确定发送socket if (start->sfd) fd = start->sfd->fd; else { // 分配随机端口socket(IPv4/IPv6) #ifdef HAVE_IPV6 if (AF_INET6) fd = allocate_rfd(AF_INET6); #endif // 连接跟踪标记处理(OPT_CONNTRACK) } // 发送查询 if (sendto(fd, (char *)header, plen, 0, ...) != -1) { log_query(F_SERVER|F_FORWARD, ...); // 记录转发日志 start->queries++; // 服务器查询计数 forwarded = 1; // 标记发送成功 forward->sentto = start; // 记录目标服务器 } } // 轮询下一个服务器 if (!(start = start->next)) start = daemon->servers; if (start == firstsentto) break; // 完成循环 } ``` - **服务器选择**: - 类型匹配(`SERV_TYPE`) - 域名匹配(`hostname_isequal`) - **socket选择优先级**: 1. 专用服务器socket(`start->sfd`) 2. 临时随机端口(`allocate_rfd`) - **高级功能**: - `OPT_CONNTRACK`:继承连接标记(SO_MARK) - 轮询机制确保所有服务器机会均等 #### 模块4:失败处理与响应回退 ```c if (!forwarded) { header->id = htons(forward->orig_id); // 恢复原始ID free_frec(forward); // 释放转发记录 // 构造失败响应 plen = setup_reply(header, plen, addrp, flags, daemon->local_ttl); send_from(udpfd, ..., (char *)header, plen, udpaddr, ...); } return 0; // 转发失败 ``` - **失败处理流程**: 1. 恢复原始查询ID 2. 释放转发记录资源(`free_frec`) 3. 生成本地响应(`setup_reply`) 4. 直接返回给客户端(`send_from`) - **响应类型**: - `flags = F_NEG`:返回SERVFAIL - 有缓存结果:返回缓存应答
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值