科普:图片中的EXIF信息
EXIF是Exchangeable Image File Format的缩写,它是一种用于在数字图像文件中存储元数据的标准格式。元数据是关于图片的信息,比如拍摄设备、拍摄日期和时间、曝光时间、ISO值、焦距、GPS定位等信息。
(资料图片仅供参考)
EXIF信息通常由数码相机、智能手机等设备在拍摄照片时自动添加到图像文件中。这些数据可以提供有关照片的详细信息,使用户能够了解拍摄环境以及使用的摄影设置。EXIF还可以记录一些特定于设备的信息,如制造商和型号。
很多对社工感兴趣的小伙伴,这时应该会有一个大胆的想法,那就是图片里如果包含了GPS定位信息
,那岂不是别人发个朋友圈不用定位我们也知道在哪里了呢?(发朋友圈不就是为了展示自己在哪?)不妨现在就来试一试吧
演示:寻找下面图片的EXIF信息
我这里找了一张昨天随手拍的一张照片,大家可以用这张图做测试进行验证
通过电脑自带的工具查看
下载完图片后,右键属性
,点击详细信息
这里面就可以看到很多参数了,当然也包括最重要的定位
到了这里如果你不嫌麻烦,可以用在线工具来找到具体定位
我们粗略的填入上方的29和108
发现这里和我的实际位置相差有点大,那么我们再精确一点
真正想要获取大家个人的人肯定不会用这么傻的方法,下面为大家讲解高效的批量获取
使用Python实现获取图片EXIF信息
这里主要就是使用了exifread
模块读取图片的exif
信息,测试使用中需要安装
exifread模块和Requests模块
相关代码
import requests
import exifread
class GetPhotoInfo:
def __init__(self, photo):
= photo
= '填写自己的百度ak'
= _photo_info()
def get_photo_info(self, ):
with open(, 'rb') as f:
tags = _file(f)
try:
# 打印照片其中一些信息
print('拍摄时间:', tags['EXIF DateTimeOriginal'])
print('照相机制造商:', tags['Image Make'])
print('照相机型号:', tags['Image Model'])
print('照片尺寸:', tags['EXIF ExifImageWidth'], tags['EXIF ExifImageLength'])
# 纬度
lat_ref = tags["GPS GPSLatitudeRef"].printable
lat = tags["GPS GPSLatitude"].printable[1:-1].replace(" ", "").replace("/", ",").split(",")
lat = float(lat[0]) + float(lat[1]) / 60 + float(lat[2]) / float(lat[3]) / 3600
if lat_ref != "N":
lat = lat * (-1)
# 经度
lon_ref = tags["GPS GPSLongitudeRef"].printable
lon = tags["GPS GPSLongitude"].printable[1:-1].replace(" ", "").replace("/", ",").split(",")
lon = float(lon[0]) + float(lon[1]) / 60 + float(lon[2]) / float(lon[3]) / 3600
if lon_ref != "E":
lon = lon * (-1)
except KeyError:
return "ERROR:请确保照片包含经纬度等EXIF信息。"
else:
print("经纬度:", lat, lon)
return lat, lon
def get_location(self):
url = '/reverse_geocoding/v3/?ak={}&output=json' \
'&coordtype=wgs84ll&location={},{}'.format(, *)
response = (url).json()
status = response['status']
if status == 0:
address = response['result']['formatted_address']
print('详细地址:', address)
else:
print('baidu_map error')
if __name__ == '__main__':
Main = GetPhotoInfo('IMG_')
_location()
配置过程中可能会遇到的坑
使用pip安装的时候如果你习惯开了vpn
,很有可能会报错,然后还查不到原因。
为防止这里被别有用心的人利用,这里我就点到为止了(真正想干坏事的也不用我这小菜鸡教)
写这篇文章只是为了从一个人肉者,开盒者的角度提醒大家注意防范个人隐私的泄露。
最后引用一句网友的话“对于大多数人来说,个人信息会不会泄露,不取决于你想不想泄露,而取决于有没有人想要”
标签: