If someone sends an email from a gmail account, is it possible for me to trace the emailers IP address or does Google hide it?
Looking at an email from y'day sent from Gmail I'm not seeing the sender's IP anywhere in the transport header (just one Gmail server). Google has it, no doubt, but it would probably take getting a subpoena involved to get it.
It looks like gmail won't show the IP if the message was sent from the web interface, but messages sent from an email program, using gmail's SMTP server will have the sending IP in the mail headers.
Mail servers hide their senders addresses, especially if they use 'web mail'. In email exchange its server to server and the client always retrieves their email from their server. When they send an email they don't send it directly to googles mail server but it gets sent to their mail server who than hands it off to google.
Here is an example of an exchange from google.com:
postfix/smtpd: connect from mail-yx0-f195.google.com[184.108.40.206]
postfix/smtpd: D23242C681AA: client=mail-yx0-f195.google.com[220.127.116.11]
postfix/cleanup: D23242C681AA: email@example.com postfix/qmgr: D23242C681AA: from=MeGoogleAccount@gmail.com, size=2016, nrcpt=2 (queue active)
postfix/smtpd: connect from localhost.localdomain[127.0.0.1]
postfix/smtpd: A64A02C681B2: client=localhost.localdomain[127.0.0.1]
postfix/cleanup: A64A02C681B2: firstname.lastname@example.org
postfix/smtpd: disconnect from localhost.localdomain[127.0.0.1]
postfix/qmgr: A64A02C681B2: from=MeGoogleAccount@gmail.com, size=2602, nrcpt=2 (queue active)
postfix/smtp: D23242C681AA: email@example.com, relay=127.0.0.1[127.0.0.1]:10024, delay=4.9, delays=0.12/0.01/0/4.8, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as A64A02C681B2)
postfix/smtp: D23242C681AA: to=MeGoogleAccount@Gmail.com, firstname.lastname@example.org, relay=127.0.0.1[127.0.0.1]:10024, delay=4.9, delays=0.12/0.01/0/4.8, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as A64A02C681B2)
postfix/qmgr: D23242C681AA: removed
postfix/lmtp: A64A02C681B2: email@example.com, relay=mail.medomain.com[10.0.2.5]:7025, delay=0.12, delays=0.01/0.02/0/0.09, dsn=2.1.5, status=sent (250 2.1.5 OK)
postfix/smtp: A64A02C681B2: to=MeGoogleAccount@Gmail.com, relay=gmail-smtp-in.l.google.com[18.104.22.168]:25, delay=1.5, delays=0.01/0.02/0.25/1.2, dsn=2.0.0, status=sent (250 2.0.0 OK 1245978619 11si5308893qyk.152)
postfix/qmgr: A64A02C681B2: removed
As you can see its only server-server transmissions. If you wanted to know who connected with what IP, google would have that information more or less in their front-end logs instead of the backend mail logs.
Gmail and most email providers will hide it by default (I believe only Hotmail used to enable at one point).
If you want to trace the real ip address, the easiest way (without a subpoena) is to create an email with a link (or image) and hope the user will read it (or click on the link). As long as the email is interesting enough (and not spammy), the user will be temped to read it..
But even if you get the full header, you cannot trust anything other than the last Received header (everything else can be faked). See also How to track the original location of an email via its IP address.
I think Gmail is one of the few that hide the IP for you. Anytime I receive responses to for-sale items on Craigslist I always check the IP before replying. I have noticed that hotmail and yahoo IPs are present, while Gmail is not.
Spammers have caught onto this also and are now using the heck out of Gmail addresses to send spam.