Kindly confirm the information below.
a. Chinese mobile networks are blocking the useragent strings.
b. The user-agent send to the server are in different encoding for Chinese mobiles.
Please let me know whether a or b is true and also pour in your experiences on the identifying the user agents in Chinese mobiles.
Everywhere the term Chinese mobile means a mobile in China with Chinese mobile network.
Thanks in advance.
[changed]
I just tested this with my mobile phone. The user agent that is received by remote servers is both the same when I connect via WLAN and via GPRS (my SIM card is issued by China Mobile). There doesn't seem to be any filtering of user agents.
Specifically, my browser's user agent string is:
Mozilla/5.0 (webOS/2.1.0; U; en-GB) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1
I'd say that neither a nor b is true.
Related
My website has a conditional accessing rule: if the access is being made by the Googlebot I deliver a page fully rendered by the server (server-side rendering).
Otherwise, if the access is being made by a human being I deliver a page with SPA features (client-side rendering).
My question is: In my last analysis using PageSpeed Insights (Lighthouse) I noticed that the results were based on the client-side rendering version. In this case, should I consider that the website performance result will be judged by Google by the client-side version?
I'm a little bit confused about this behavior.
Thanks :)
Lighthouse is different from googlebot, so probably you are not checking it correctly.
Did a quick check and I found this user agent string my case:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4143.7 Safari/537.36 Chrome-Lighthouse
But in any case: don't do this. This tecnique is called cloaking and is forbidden by Google.
You risk to have you page removed form the index or heavily penalized.
You must serve to bot what you users normally access to.
I have automated tests of UI with Selenium, The first step is to enter a Google account (username and password, the account does not require anything else). These tests run well on my personal computer, but when I try to run them on a virtual machine in Compute Engine with chrome / firefox etc. After entering email and password, Google returns the following message:
"For your protection, you can't sign in from this device. Try again later, or sign in from another device."
Additional notes:
I have already tried several accounts; Gmail (personal / standard and with G Suite) and the same thing happens (Selenium + Compute Engine)
In Compute Engine machines I can enter traditionally / manually well,no problem. The problem arises when I run the script with Selenum (webdrive chrome and firefox).
The OS Centos 7 + xfce, selenium node js
UserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
I attach the image, I appreciate any help.
Image link
Possibly not related with your use case. But I started to encounter this 3 weeks ago myself on a regular Windows 7 Home using Firefox Developer as my browser.
The solution offered by #john-smith (which was voted down) gave me an idea as I am using a custom user-agent for this browser. I reverted the user-agent back to normal and I was able to login to all of the Google services again.
Whoever voted down #john-smith's answer did so without actually testing it first or understanding it. But it appears that Google probably started to blacklist user-agents that are old or unknown to them or they find suspicious.
If it is also a user-agent issue on your end, then this is more on Google's end.
I hope it helps.
And thanks to #john-smith, his solution gave me an idea and it worked. Unfortunately, I can't up-vote you because of the restrictions in place.
I'm not positive this will help, but I notice your user-agent looks unconventional, reporting Safari and WebKit on Linux.
I know in my Firefox on MacOS, I have an extension that spoofs my user-agent with strings that I know for sure are valid but don't match my actual setup, and I reliably get that same error trying to log into my Google account unless I turn that extension off. I believe Google may be using Javascript to do some fingerprinting, and then refusing to allow logins at all if the user-agent string doesn't match what it finds, and returns only that vague message that I "can't sign in from this device."
Maybe you could try setting your user-agent string to something more common or appropriate for your OS and browser.
Is there any web service / API / other way to figure out a cellular Internet provider / carrier (id / name / anything else) for a given mobile browser request? Both client-side and server-side solutions will be acceptable. For example, maybe there is something similar to determining an location by IP (just count a carrier instead).
If the tags of this question aren't correct - please advice. If there is any other site worth checking - please share the appropriate URL.
Try http://www.maxmind.com/, their database of IP info provides both geo location and MNO (Mobile Network Operator) provider. You can test by going to their home page and putting in the IP of your phone. Of course, if a phone is connected using WiFi you won't get the MNO.
You need to get the ISP database. http://www.maxmind.com/app/isp
I've set up my Silverlight WP7 app to use a WebBrowser Control to allow users to log into facebook and grant permissions for further actions. After the user has granted permissions, they are redirected to a web page letting them know permissions have been granted.
The chain is as follows:
App -> opens WebBrowser control at web service #1 -> web service redirects to FB -> Permissions granted -> FB redirects to web service #2 which returns a view.
Web services are both within an externally hosted MVC project.
This all works fine, UNLESS the user is not logged into facebook - instead of taking them to the facebook login page as you would expect, I just get an HTTP 500 internal server error and web service #2 is not hit. If the user is logged in, then everything proceeds as it should.
I'll also mention this ONLY happens on the WP7 device and does not occur in any browser, including IE9, on my laptop.
EDIT: For clarity's sake, Web browsers on my laptop were tested by setting a breakpoint before my WebBrowser control was called in Visual Studio, I grabbed the Uri I had built there, and pasted it into Chrome, IE9 etc.
I'm not even sure what direction to look in! Also, I'm sure you guys may need more details to aid you with this question - please let me know what else it is you might need and i'll do my best to provide it.
This code causes the problem.
// Constants.URL_FACEBOOK_LOGIN contains the parameter "display=touch|wap"
_popUpBrowser.Navigate(new Uri(Constants.URL_FACEBOOK_LOGIN));
This code fixes the problem.
// Constants.URL_FACEBOOK_LOGIN contains the parameter "display=touch|wap"
string userAgent = "User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7";
_popUpBrowser.Navigate(new Uri(Constants.URL_FACEBOOK_LOGIN), null, userAgent);
Why?
Because Facebook currently has an issue with the Windows Phone 7 User-Agent value and the display parameter values of "touch" and "wap" when they are present in the same request. So simply sending in an alternate User-Agent header when using a WebBrowser control solves the problem for now.
I hope this helps other Windows Phone 7 developers that encounter the nasty 500 error when interfacing Facebook Graph API.
I've figured out the issue and have come to an undesirable solution - however, any solution is better than a HTTP 500 error.
The issue was with the Facebook dialog parameter "display". As my app is intended for the WP7, I have passed "display=touch" to Facebook when I check for permissions - however this WILL NOT WORK! I don't know why, but that was the cause of my error. When I took this parameter out I stopped receiving the error - however the full desktop style is used, which is undesirable.
It seems display=touch and display=wap both give me the HTTP 500 error. 'popup' and 'page' both work. I have not tested 'Iframe'. So for now I will stick to 'popup'.
Is there any way to send an SMS through SQL Server 2008?
One possible option is to use an SMS gateway like the Clickatell API.
The Clickatell API offers a choice of connection options, including an SMTP method which you can use by sending a plain-text email from SQL Server to sms#messaging.clickatell.com, with the following body:
user: your_api_username
password: your_api_password
api_id: your_api_id
to: sms_number
text: sms_body
To send e-mails from SQL Server 2008, you might want to check out the following article:
Configure Database Mail – Send Email From SQL Database.
Another option is to write a CLR stored procedure that communicates with the SMS gateway through any protocol supported by the gateway.
Each phone carrier have email addresses that will forward to the sms/text of their subscribers and you just have send an email to these addresses and recipient will receive the messages thru sms.
example. 8009994141#phonecarrier.com
This is a link to a page to most of the carriers email to text format. Please note that this might contain not the latest information.
The best way is to call the technical support for your carrier get the information and test the feature by emailing and see if you get an sms message/
Yes, although not natively. You will have to use an SMS gateway service and do some programming around it. These come in several formats, occasionally free, but normally with some form of per message charge.
Standard gateways will accept message requests via email, a web post, or a full web service. Depending on the gateway service it may offer one, some, or all of these options.
Back in the "olden days" when I mobile SMS started to take off, in the UK at least, it was also possible to use a dial up modem to dial a network specific number and enter the SMS message. If this is still available in the area that you are looking for then the advantage of this is no account setup as it's charged to your phone bill.
I found an article which uses c# application with a SQL Server Backend to send SMS emails. Not exactly what your after but may give you another option.
SMS messages from SQL
How about an option that lets you do this in one line of code.
twiSQL - allows you to send text messages and make phone calls from SQL server
austinHenderson.com - author site
No, that is not a feature of SQL Server.
A simple way would be to write a CLR procedure that sends the sms via http to a SMS gateway of your choice
Just to add to nornal's answer since the link he spoke about seemes to have expired:
Alltel PhoneNumber#message.alltel.com
AT&T PhoneNumber#txt.att.net
Sprint PhoneNumber#messaging.sprintpcs.com
T-Mobile PhoneNumber#tmomail.net
US Cellular PhoneNumber#email.uscc.net
Verizon PhoneNumber#vtext.com
Virgin Mobile PhoneNumber#vmobl.com
So Ex: 3334441234#txt.att.net.
You use the above according to the provider.